JetpackComposeの依存関係とバージョン管理まとめ
✅ 全体イメージ図(依存関係の流れ)
libs.versions.toml
↑
└─ settings.gradle.kts → versionCatalogs.create("libs") で参照
↑
└─ build.gradle.kts(プロジェクト)→ Gradle全体設定
↑
└─ app/build.gradle.kts で libs.androidx.◯◯ を参照
└─ platform(libs.androidx.compose.bom) により
BOM(compose-bom)でバージョン一括管理
✅ 関連ファイルとその相対パス・定義内容の要約
Jetpack Compose + Version Catalog + BOM構成における、バージョン管理や依存関係の整理対象は以下の通りです。
ファイル名 | 相対パス | 役割/中身の定義要約 |
---|---|---|
build.gradle.kts (プロジェクトレベル) |
./build.gradle.kts |
プラグインや全体のバージョン管理、libs.versions.toml の参照などを設定 |
settings.gradle.kts |
./settings.gradle.kts |
モジュール登録、Version Catalog(libs)の有効化設定あり |
build.gradle.kts (モジュールレベル) |
./app/build.gradle.kts |
実際にライブラリを implementation(libs.◯◯) の形式で記述、BOMの参照もここで行う |
libs.versions.toml |
./gradle/libs.versions.toml |
依存関係の実体(モジュール名 + バージョン)を定義。BOMや個別バージョンもここに記述 |
✅ 各ファイルの定義要約
1. build.gradle.kts
(プロジェクト直下)
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("gradle/libs.versions.toml"))
}
}
}
→ libs.versions.toml
を libs
という名前で利用できるようにする定義。
2. settings.gradle.kts
include(":app")
→ app
モジュールをプロジェクトに含める。
3. app/build.gradle.kts
dependencies {
implementation(platform(libs.androidx.compose.bom)) // BOMによるバージョン管理
implementation(libs.androidx.ui)
implementation(libs.androidx.material3)
}
→ 実際に使う依存関係を libs
カタログ経由で参照し、BOMでバージョンを一括管理。
4. gradle/libs.versions.toml
[libraries]
androidx-compose-bom = { module = "androidx.compose:compose-bom", version = "2023.09.00" }
androidx-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }
→ ライブラリの名前とバージョンを定義するカタログ。compose-bom
の定義もここで行う。
✅ BOMで統一されたComposeライブラリの実バージョンはどこを見る?
ComposeのBOM(Bill of Materials)を使っている場合、複数のライブラリ(ui
, material3
, tooling
など)のバージョンは 個別に書かれていない ため、以下で確認します。
🔍 方法1:公式のCompose BOMリリースノートを確認
→ 各 BOM バージョンに含まれるすべての Compose ライブラリの実バージョンが一覧で確認できます。
🔍 方法2:Gradleで依存解決結果を確認(上級者向け)
./gradlew :app:dependencies --configuration releaseRuntimeClasspath
→ 実際にプロジェクト内で解決されたライブラリの具体的バージョン一覧を CLI 上で確認できます。
🔁 補足:libs.versions.toml
でのBOM定義例
[libraries]
androidx-compose-bom = { module = "androidx.compose:compose-bom", version = "2023.09.00" }