📚

JetpackComposeでよく使うライブラリをまとめたbuild.gradleを置いておく

2022/11/04に公開

「ライブラリは必要なものだけ落としなさい。不必要なものまで落とすとファイルサイズが増えちゃいます」

そんなことわかってます。でも、 "Coroutine や NavigationComopose とかはまず間違いなく使うじゃん!"。ということでよく使うライブラリやbuild.gradleの設定をまとめて置いておきます。

build.gradle(project)
buildscript {
    ext {
        compose_ui_version = '1.2.1'
    }
    dependencies{
        classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44'
    }
}
build.gradle(app)
plugins {
    // hilt(など)
    id 'kotlin-kapt'
    id 'dagger.hilt.android.plugin'
    id 'com.google.dagger.hilt.android'
}

dependencies {
    // navigation compose
    def nav_version = "2.5.2"
    implementation "androidx.navigation:navigation-compose:$nav_version"

    // coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"

    // hilt
    implementation "com.google.dagger:hilt-android:2.38.1"
    kapt "com.google.dagger:hilt-compiler:2.38.1"
    implementation 'androidx.hilt:hilt-navigation-compose:1.0.0'

    // room
    def room_version = "2.4.3"
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
    kapt "androidx.room:room-compiler:$room_version"
    implementation "androidx.room:room-ktx:$room_version"

    // coil
    implementation "io.coil-kt:coil-compose:2.2.2"

    // icons
    implementation 'androidx.compose.material:material-icons-extended:1.2.1'

    // retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'

}

ついでに各ライブラリのリリースノート(的なもの)を貼っておきます。

Navigation compose

  • Compose で画面遷移

https://developer.android.com/jetpack/androidx/releases/navigation?hl=ja

Kotlin Coroutines

  • モダンな非同期処理

https://github.com/Kotlin/kotlinx.coroutines/releases

DaggerHilt

  • 依存関係注入

https://developer.android.com/jetpack/androidx/releases/hilt?hl=ja

Room

  • DB を扱いやすくしてくれるやつ

https://developer.android.com/jetpack/androidx/releases/room?hl=ja

Coil

  • インターネット上の画像を読み込んでくれるやつ

https://github.com/coil-kt/coil/releases

Material Icons

  • Icons クラスの拡張

https://developer.android.com/jetpack/androidx/releases/compose-material?
hl=ja

Retrofit

  • 外部 WebAPI と通信するやつ

https://github.com/square/retrofit#download

⬆️⬆️⬆️ わかりにくいですが、com.squareup.retrofit2:retrofit:2.9.0のようにハイライトされているところが最新バージョンです。リリースノート的なのはないのかな?

番外編

Accompanist

accompanist
dependencies {
    def accompanist_version = "0.25.1"
    implementation "com.google.accompanist:accompanist-使いたいもの:$accompanist_version"
}

Accompanist は各機能ごとにモジュールが分かれてるのでどんなコンポーネントなどがあるかは以下を参照

https://google.github.io/accompanist/

https://github.com/google/accompanist#compose-versions

よく使うのはこの辺り?

Swipe to Refresh はよく使うんじゃないだろうか?

Swipe to Refresh
dependencies {
    def accompanist_version = "0.25.1"
    implementation "com.google.accompanist:accompanist-swiperefresh:$accompanist_version"
}

Discussion