Multiplatform

Compose Multiplatform 1.6.10 – ベータ版 iOS、アルファ版の Web、Lifecycle、ナビゲーションなど

Read this post in other languages:

Compose Multiplatform は開発者が UI の実装を異なるプラットフォーム間で共有できるようにする JetBrains の宣言型 UI フレームワークです。 Compose Multiplatform を使用すると Kotlin Multiplatform プロジェクトでコードを完全に柔軟に共有できるようになり、最大 100% Kotlin でアプリを書けるようになります。 1.6.10 リリースにはいくつかの強力な機能が含まれており、iOS のサポートがベータに、ウェブのサポートがアルファに昇格しています。

Compose Multiplatform の基礎

このリリースのハイライトには以下が含まれています。

  • マルチプラットフォームリソース API は安定版となり、このライブラリに待ち望まれていた複数の改善が行われています。
  • Jetpack Compoase Navigation ベースの実験的ナビゲーションライブラリ。
  • 共通の ViewModel を実装した共通 Lifecycle ライブラリ。
  • 新しい Compose コンパイラー Gradle プラグインを使用することで、Kotlin 2.0.0 がサポートされるようになりました。

その他すべての注目すべき変更点に関する詳細は、Compose Multiplatform 1.6.10 の新機能をご覧ください。 バージョン間のすべての変更、更新、および修正を網羅したリストは GitHub のリリースノートにあります。

Compose Multiplatform for iOS がベータになりました

Compose Multiplatform for iOS は昨年にアルファ段階に移行して以来、ネイティブの外観と操作感が大幅に改善されました。

以下のような機能強化が行われています。

  • 新しいスクロール動作や、ネイティブのテキストフィールド、ウィンドウインセット、テキスト選択、および拡大ツールにより、操作感がより自然になりました。
  • ポップアップ、ダイアログ、およびその他のウィジェットの動作がさらに自然になりました。
  • Compose の表示が ProMotion ディスプレイに対応し、最大 120 Hz のダイナミックリフレッシュレートをサポートするようになりました。
  • VoiceOver、フォント、および拡大縮小の設定、およびアクセシビリティツリーの同期など、iOS のアクセシビリティ機能がサポートされるようになりました。
  • 新しい共通 DSL による UI テストが可能になりました。
  • 重要な Material 3 コンポーネントである DatePickerAlertDialogDropdownMenuModalBottomSheetSearchBar が iOS に対応しました。

現在は安定版のリリースを目指してパフォーマンスの改善に取り組みながら、iOS での Compose コンポーネントに関する問題をできるだけ多く解決しているところです。

Compose Multiplatform for Web がアルファになりました

Compose Multiplatform チームより、実験的なウェブターゲットがアルファに昇格したことをお知らせします。

  • 他のプラットフォーム向けに実装されている Jetpack Compose の機能をウェブ向けにも使用できるようになりました。
  • 現在、チームはウェブプラットフォームのリリースに向けて取り組んでいるところです。

ただし、ほとんどのコンポーネントをブラウザー対応にするには、まだまだ時間がかかります。 Compose Multiplatform for Web の今後の改善にご注目ください! Compose Web アプリをお試しになるには、こちらのチュートリアルをお読みください。

Multiplatform のリソース

リソースライブラリが安定版になりました! API の信頼性が向上しただけでなく、柔軟性と利便性がさらに高まりました。

  • モジュールやソースセットをユーザーにとって合理的な方法で管理できるようになり、 commonMain に制限する必要はなくなりました。 Compose Multiplatform はプラットフォームごとに必要なファイルの公開を処理します。
  • Res クラスの生成を Gradle 構成ファイルの compose.resources {} ブロックで制御できるようになりました。
  • フォントと画像をバイト配列として取得できる複数の新しい実験的関数が追加されました。 これらの関数はマルチプラットフォームリソースにアクセスが必要なサードパーティライブラリに役立ちます。

これらの内容とその他の変更点については、最新のドキュメントで説明されています。

実験的ナビゲーションライブラリ

Jetpack Compose Navigation の手法が Compose Multiplatform に導入されました。 ナビゲーションホスト、グラフ、およびコントローラーを使用して、簡単に画面間を移動できるようになっています。

共通のナビゲーションライブラリはまだ実験的ですが、ほとんどの基本機能を網羅しています。 最新の機能と制限については、ドキュメントをご覧ください。

Lifecycle ライブラリと共通 ViewModel

Jetpack Lifecycle ベースの Lifecycle ライブラリには共通の LifecycleOwner 実装が備わっており、元の Jetpack Compose の機能を他のプラットフォームに拡張し、共通コードでライフサイクルの状態を観測できるようになっています。

共通の lifecycle ライブラリには状態管理だけでなく、共通の ViewModel 実装が含まれています。 Android の手法を使用してすべてのプラットフォームに堅牢な UI を構築できるようになりました。

これらの API の実装とセットアップの詳細については、ドキュメントをご覧ください。

新しい Compose コンパイラー Gradle プラグイン

Compose コンパイラーが Kotlin リポジトリにマージされました。 これにより、プロジェクトを Kotlin 2.0.0 へより円滑に移行できるようになっています。Compose コンパイラープラグインと同じバージョン番号の Kotlin バージョンの互換性が常に維持され、一緒に出荷されるためです(Kotlin 2.0.10 と Compose コンパイラープラグイン 2.0.10 など)。

新しいコンパイラーバージョンに加えて、プロジェクトのセットアップを単純化し、Composer コンパイラーオプションに簡単にアクセスできる新しい Compose コンパイラー Gradle プラグインもリリースしました。

移行ガイドとその他の詳細については、Compose コンパイラーのドキュメントをご覧ください。

Kotlin 2.0.0 のサポート

Compose Multiplatform 1.6.10 は Kotlin 2.0.0 に完全に対応しています。 このため、新しい Compose コンパイラーと共により簡単かつ柔軟に Kotlin の最新バージョンに移行できるようになっています。

Compose Multiplatform の Fleet 機能

以下の内容を含めて、Fleet 1.35 の Compose 開発のサポートが全体的に改善されています。

  • Kotlin/Wasm コードのデバッグのサポートが強化されました。
  • Composable のプレビューが入力に応じて更新されるようになりました。
  • マルチプラットフォームリソースのアクセサーとナビゲーションが 1.6.10 リリースで更新され、リソースの管理を楽にするいくつかの改善が行われています。

その他の注目すべき変更点

このリリースに含まれるその他の変更については、以下をご覧ください。

その他の記事と動画

オリジナル(英語)ブログ投稿記事の作者:

Ryuji Owan

Aleksey Zamulla

image description

Discover more