✨ライブラリのVer管理は「lib.version.toml」で! - Ki-Kobayashi/Android-Wiki GitHub Wiki

🟩参考サイト

https://zenn.dev/kzt/articles/809e3734d510db (公式)
https://developer.android.com/studio/build/migrate-to-catalogs?hl=ja

.

🟩 「lib.version.toml」と何が良い?

  • バージョンカタログで一元管理しておけば、そのカタログだけ直せば、全部のモジュールに反映されるので便利になる
    (※プロジェクトをマルチモジュール化して個別にライブラリをインストールしてるときに特に効力を発揮)

  • 「lib.version.toml」でも新しいバージョンがあるときに、ハイライトされる

.

🟩 作成手順1 : 新規プロジェクト時に作成する場合

下記を設定する
image

.

🟩 作成手順2 : 途中から追加する場合

  1. どこでもいいから右クリックメニューから、New -> VersionCatalogを選択
    image
  2. 名前(デフォは「lib」)をつけると、空のtomlファイルが作成される([lib.version.toml])
      → 💡作成場所:プロジェクト直下 > gradle > ここに作成される
  3. tomlファイルにインストールしたいライブラリバージョンを記載
      → 💡そのバージョンを build.gradle.kts から参照させる(書き方は 次項 参照)

.

🟩 定義のやり方

🟡 lib.version.toml

💡[bundles]にもライブラリを列挙してまとめると、複数のライブラリをパッケージ単位でインストールできる

[versions]
androidGradlePlugin = "7.4.1"
androidx-core = "1.9.0"
androidx-lifecycle = "2.6.2"
androidx-activity = "1.7.2"

[libraries]
androidx-core = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
androidx-lifecycle = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" }
androidx-activity = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity"}


[plugins]
# 💡build.gradle の プラグインはここで指定する(app/proj 共通)
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }

[bundles]
# 💡ライブラリをバンドルで定義することによって、複数のライブラリをパッケージ単位でインストール
androidx-base = [
    #[libraries]の定義名を文字列として指定する
    "androidx-core",
    "androidx-lifecycle",
    "androidx-activity",
]

.

🟡 build.gradle.kts

💡主に以下の2つの参照(lib.version.tomlを)の仕方がある → ✨併用して参照することも可能

  • 個別にライブラリを参照する方法
  • まとめて(パッケージとして)ライブラリを参照する方法

.

💡ポイント

  • 参照時は、tomlで「-」部分、build.gradleは「.」にして呼び出す

.

💎 (prj) build.gradle.kts

plugins {
   alias(libs.plugins.android.application) apply false
}

.

💎 (app) build.gradle.kts

plugins {
  // 💡「id → alias」、「""」では囲わない
   alias(libs.plugins.android.application)
}
dependencies {

// デフォルトで定義されてたものをコメントアウト
//    implementation("androidx.core:core-ktx:1.9.0")
//    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
//    implementation("androidx.activity:activity-compose:1.7.2")

    // 💡【個別でライブラリを参照する場合】「""」では囲わない
    implementation(libs.androidx.core)
    implementation(libs.androidx.lifecycle)
    implementation(libs.androidx.activity)
    

    // 💡【まとめて(パッケージとして)ライブラリを参照する場合】「""」では囲わない
    implementation(libs.bundles.androidx.base)
    ...
}

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡