Android Jetpack(AndroidX)の導入方法とGoogle Mavenリポジトリの依存関係【Androidアプリ開発】

2023-08-06Androidアプリ開発入門

AndroidX APIはリポジトリにある

Android Jetpack(AndroidX)を使うには何かするの?って人向けに導入方法とGoogle Mavenリポジトリと依存関係について書いていきます。

Android Jetpackって何なの?って人は下記の記事へ。

Google Mavenリポジトリと依存関係

AndroidXはJetpackコンポーネントなんですが、AndroidプラットフォームAPIとは別の扱いになっています。AndroidXの機能を使うには個別にダウンロードする設定をする必要があります。AndroidXはGoogle Mavenリポジトリというライブラリを置いておくサーバーが有りそこからダウンロードして使えるようにしています。Android StudioはGradle(グレイドル)というビルドシステムを採用していてGradleのスクリプトファイルにダウンロードするライブラリを記述していくことでAndroidXが使えるようになります。どのライブラリを使うか、どのファイルを使ってビルドするのか管理することを【依存関係】といいます。ざっくりしすぎる説明で語弊があるかもですが、今の段階では『AndroidXを使うにはどこかからダウンロードして来るからその設定(依存関係の宣言)をしなくてはいけない』と思っててくれれば良いです。

Gradleとレポジトリの依存関係

Android Studioのフォルダ構成を見ると[Gradle]と言うファイルやフォルダがたくさんありますが、ビルド関係のファイルだと思って下さい。

Gradleスクリプトのファイル構成

Jetpackを使えるようにする

Android Studioでは自動で使える様にする設定が入りますが、一応説明しておきます。Jetpackを使えるようにするには下記の手順となります。①~③はプロジェクトで1回確認すれば良いですが④の依存関係は使用したい機能毎に追記していきます。

  1. API28以上のSDKをインストールする
  2. gradle.propertiesのAndroidXの項目をtrueにする
  3. リポジトリを設定する
  4. APIの依存関係を設定する

API28以上のSDKをインストールする

前提条件としてAndroidXはAPI28以上で使う事ができます。なのでAPI28以上のSDK Platformが入っていない場合はSDK Managerからインストールする必要があります。

SDKマネージャー画面

compileSdkVersionが28以上になっている事を確認する

[app/build.gradle]の下記の項目を28以上になっている事を確認します。ファイルをダブルクリックする事で編集する事ができます。

app/build.gradleスクリプトの場所
compileSdkVersion 29

gradle.propertiesを確認する

[gradle.properties]ファイルでAndroidXを使う様に設定します。

gradle.propertiesスクリプトの場所

下記の項目を[true]にします。

android.useAndroidX=true
android.enableJetifier=true

リポジトリの設定を確認する

[build.gradle]ファイルに[google()]を追記します。全てのプロジェクトでGoogle Mavenリポジトリとjcenterをリポジトリとして使いますよ、という設定になります。多分こちらも既に設定されています。

build.gradleの場所
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
    

APIの依存関係を宣言する

[build.gradle]に使用するAPIを記述します。バージョンはリリースノートGoogle Mavenリポジトリで確認できます。これはプロジェクトで使うAPI全てを記述する必要があります。書き方がわからない場合はAndroidデベロッパーのドキュメントの各コンポーネントのページに依存関係の書き方のサンプルが載ってるのでそちらを見ると良いです。こちらはAndroid Studioで使ってると勝手に入ってくれてるのでバージョンだけ確認すれば良いと思います。違うバージョンを使いたければ変更してください。

    dependencies {
        def lifecycle_version = "2.2.0"
        def arch_version = "2.1.0"

        // ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
        // LiveData
        implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
        // Lifecycles only (without ViewModel or LiveData)
        implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
    }