Jetpack には Android ライブラリのコレクションが含まれており、これらのライブラリを Android アプリで利用すると、おすすめの方法を取り入れて、下位互換性を提供できるようになります。
Jetpack によるアプリのアーキテクチャ ガイドでは、Android アプリを構築する際に考慮するおすすめの方法と推奨アーキテクチャについて概説しています。
以下のセクションでは、Jetpack コンポーネントを使ってみる方法について説明します。
アプリで Jetpack ライブラリを使用する
Jetpack のコンポーネントはすべて Google Maven リポジトリで入手できます。
settings.gradle
ファイルを開き、次のように dependencyResolutionManagement { repositories {...}}
ブロックに google()
リポジトリを追加します。
Groovy
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() jcenter() } }
Kotlin
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() jcenter() } }
次に、Jetpack コンポーネント(LiveData や ViewModel のようなアーキテクチャ コンポーネントなど)をモジュールの build.gradle
ファイルに追加します。以下に例を示します。
Groovy
dependencies { def lifecycle_version = "2.2.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" ... }
Kotlin
dependencies { val lifecycle_version = "2.2.0" implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version") ... }
上記の lifecycle-livedata-ktx
と lifecycle-viewmodel-ktx
のように、Jetpack ライブラリの多くは Android KTX 拡張機能を提供します。
KTX 拡張機能は Java API をベースとし、Kotlin 固有の言語機能を活用して構築されています。
新しい Jetpack ライブラリのリリースについては、リリースに関するページをご確認ください。
Jetpack のどのライブラリでも、Kotlin ベースの API と Java ベースの API のリファレンス ページが用意されています。
Jetpack を活用する
Jetpack ライブラリは、アプリのさまざまなニーズに応えるために、単独で使用することも、組み合わせて使用することもできます。
- WorkManager: バックグラウンドでのスケジューリングのニーズに応じます。
- Room: データ ストレージを永続化します。
- Navigation: アプリのナビゲーション フローを管理します。
- CameraX: カメラアプリのニーズに応じます。
- すべての Jetpack ライブラリの概要をご覧ください。
Jetpack ライブラリは、androidx
名前空間内に公開されます。プロジェクトが現在 Android サポート ライブラリを使用している場合は、androidx 名前空間への移行方法についての説明をご覧ください。
Jetpack の使用方法について詳しくは、下記のページをご覧ください。
その他のリソース
オンライン トレーニング
- Kotlin による Android アプリの開発(Udacity コース)
サンプルコード
- Sunflower デモアプリでは、Android での開発に関するおすすめの方法を説明するために、各種の Jetpack コンポーネントが使用されています。