Android Jetpack を使ってみる

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 コンポーネント(LiveDataViewModel のようなアーキテクチャ コンポーネントなど)をモジュールの 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-ktxlifecycle-viewmodel-ktx のように、Jetpack ライブラリの多くは Android KTX 拡張機能を提供します。 KTX 拡張機能は Java API をベースとし、Kotlin 固有の言語機能を活用して構築されています。

新しい Jetpack ライブラリのリリースについては、リリースに関するページをご確認ください。

Jetpack のどのライブラリでも、Kotlin ベースの API と Java ベースの API のリファレンス ページが用意されています。

Jetpack の依存関係を確認する(省略可)

2023 年 6 月の時点で、Jetpack チームが Jetpack ライブラリに署名しています。これらの 署名により、デベロッパーは、ライブラリ アーティファクトがビルドされ、 Google によって署名されたものです。署名されたライブラリが署名検証を受けられるようになると、 アップデートが公開されます

Android プロジェクトで署名検証が有効になっている場合は、次の手順を行います。 Gradle プロジェクトで Jetpack の依存関係を確認する方法は次のとおりです。

  1. Google の信頼できる鍵を <trusted-keys> セクションに追加する $PROJECT_ROOT/gradle/verification-metadata.xml:

    <trusted-keys>
        <trusted-key id="8461efa0e74abae010de66994eb27db2a3b88b8b">
            ...
        </trusted-key>
        <trusted-key id="a5f483cd733a4ebaea378b2ae88979fb9b30acf2">
            ...
        </trusted-key>
        ...
    </trusted-keys>
    
  2. プロジェクトが使用するライブラリごとに <trusting group> エントリを追加します。 androidx.fragment ライブラリと androidx.emoji2 ライブラリの例を次に示します。

    <trusted-keys>
        <trusted-key id="8461efa0e74abae010de66994eb27db2a3b88b8b">
            <trusting group="androidx.fragment"/>
            <trusting group="androidx.emoji2"/>
        </trusted-key>
        <trusted-key id="a5f483cd733a4ebaea378b2ae88979fb9b30acf2">
            <trusting group="androidx.fragment"/>
            <trusting group="androidx.emoji2"/>
        </trusted-key>
        ...
    </trusted-keys>
    

依存関係の検証に関する問題については、以下に関する Gradle のガイドをご覧ください。 依存関係の検証のトラブルシューティング

最後に、信頼できる鍵の詳細は以下で確認できます: Ubuntu のキーサーバー サイト

Jetpack を活用する

Jetpack ライブラリは、アプリのさまざまなニーズに応えるために、単独で使用することも、組み合わせて使用することもできます。

  • WorkManager: バックグラウンドでのスケジューリングのニーズに応じます。
  • Room: データ ストレージを永続化します。
  • Navigation: アプリのナビゲーション フローを管理します。
  • CameraX: カメラアプリのニーズに応じます。
  • すべての Jetpack ライブラリの概要をご覧ください。

Jetpack ライブラリは、androidx 名前空間内に公開されます。プロジェクトが現在 Android サポート ライブラリを使用している場合は、androidx 名前空間への移行方法についての説明をご覧ください。

Jetpack の使用方法について詳しくは、下記のページをご覧ください。

その他のリソース

オンライン トレーニング

サンプルコード

  • Sunflower デモアプリでは、Android での開発に関するおすすめの方法を説明するために、各種の Jetpack コンポーネントが使用されています。

Codelab

動画