「Hello, Jetpack」: 初めての Jetpack アプリを作成する

このドキュメントでは、Jetpack をベースにしたシンプルなアプリを作成するための基本的な手順について説明します。使用するサンプルは、ComponentsBasicSample と呼ばれる Kotlin のサンプルアプリをベースにしています。

一般的なアプリの作成方法については、初めてのアプリの作成に関する記事をご覧ください。このドキュメントで説明するクラスの詳細については、Android アーキテクチャ コンポーネントをご覧ください。

アプリをセットアップする

Jetpack を使用する場合のアプリのセットアップ手順は次のとおりです。

  1. Android Studio 3.2 以上を起動し、[Create Android Project] と [Target Android Devices] に情報を入力します。
  2. Kotlin でアプリを作成する場合は、[Create Android Project] 画面の [Include Kotlin support] チェックボックスを必ずオンにしてください。

  3. [Create Android Project] 画面に続いて [Add an Activity to Mobile] 画面が表示され、プロジェクトの開始時に使用する各種のテンプレートが提示されます。[Activity & Fragment + ViewModel] テンプレート(図 1 を参照)を使用すると、Jetpack を簡単にアプリに組み込むことができます。このテンプレートをクリックし、[Next] をクリックします。
  4. 図 1. [Activity & Fragment + ViewModel] テンプレート

  5. [Configure Activity] 画面で、プロジェクトを開始する際に使用する初期のアクティビティ、フラグメント、ViewModel オブジェクトの名前を入力します。必要に応じて、フラグメント パッケージのパスを入力することもできます。入力したら、[Finish] をクリックします。
  6. 図 2. [Activity & Fragment + ViewModel] テンプレートの [Configure Activity] 画面

プロジェクトの java フォルダを開くと、プロジェクトに最初から含まれている 3 つのクラス(StartActivityStartFragmentStartViewModel)が表示されます(図 3 を参照)。

図 3. [Activity & Fragment + ViewModel] テンプレートを選択した場合にプロジェクトに含まれるクラス

  • StartActivity がアプリのエントリ ポイントになります。これは Activity のスタブで、アプリの初期画面に表示されるフラグメントのコンテナとして機能します。

  • StartFragment は、アプリで使用する初期 Fragment のスタブです。

  • StartViewModel は、アプリで使用する初期 ViewModel のスタブです。

Jetpack を活用する

次の例に示すように、上記のクラスを使って ViewModel オブジェクトを実装することができます。

    class StartViewModel : ViewModel() {
            private val _data = MutableLiveData<String>()
            val data: LiveData<String>
                get() = _data

            init {
                _data.value = "Hello, Jetpack!"
            }
        }
    

アプリの画面が複数の場合は、Navigation クラスを追加することによってフラグメントのナビゲーション トリガーを実装できます。次のコードはナビゲーション トリガーの実装例です。

    // Set up a click listener on the login button
        view?.findViewById<Button>(R.id.navigate_bt)?.setOnClickListener {
           // Navigate to the login destination
           view?.let { Navigation.findNavController(it).navigate(R.id.end_action) }
    

アプリから SQLite のデータにローカル アクセスする必要がある場合は、Room 永続ライブラリを追加することもできます。アプリで大量のデータを 1 画面に表示する必要がある場合は、Paging ライブラリの使用を検討してください。

Gradle ファイルを設定する

Jetpack を使用するには、Gradle ファイルに適切な行を追加する必要があります。このアプリでは ViewModelLiveDataNavigationController を使用するため、Gradle ファイルに次の行を含めます。

       // LiveData + ViewModel

           implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"

           // Navigation

           implementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersion
           implementation 'androidx.navigation:navigation-ui:' + rootProject.navigationVersion
    

詳細

このドキュメントで説明したサンプルとクラスの詳細については、次のリソースをご覧ください。

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