部品構成表を使用する

Compose 部品構成表(BOM)では、すべての Compose ライブラリを管理できる 新しい Deployment の BOM のバージョンのみを取得できますBOM 自体には、さまざまな Compose ライブラリが連携して適切に機能するよう、それぞれのライブラリ安定版へのリンクが含まれています。アプリで BOM を使用するときに、Compose ライブラリの依存関係自体にバージョンを追加する必要はありません。BOM バージョンを更新すると、使用しているすべてのライブラリが自動的に新しいバージョンに更新されます。

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2024.09.03")
    implementation(composeBom)
    testImplementation(composeBom)
    androidTestImplementation(composeBom)

    // Specify Compose library dependencies without a version definition
    implementation("androidx.compose.foundation:foundation")
    // ..
    testImplementation("androidx.compose.ui:ui-test-junit4")
    // ..
    androidTestImplementation("androidx.compose.ui:ui-test")
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom:2024.09.03')
    implementation composeBom
    testImplementation composeBom
    androidTestImplementation composeBom

    // Specify Compose library dependencies without a version definition
    implementation 'androidx.compose.foundation:foundation'
    // ..
    testImplementation 'androidx.compose.ui:ui-test-junit4'
    // ..
    androidTestImplementation 'androidx.compose.ui:ui-test'
}

特定の BOM バージョンにマッピングされている Compose ライブラリ バージョンを見つけるには、BOM とライブラリ バージョンのマッピングを確認してください。

Compose Compiler ライブラリが BOM に含まれていないのはなぜですか?

Compose Kotlin コンパイラ拡張機能(androidx.compose.compiler)は、Compose ライブラリのバージョンでなく、Kotlin コンパイラ プラグインのバージョンにリンクされており、Compose の他の部分とは異なる頻度でリリースされます。

Kotlin 2.0 以降、Compose アプリコンパイラは Kotlin コンパイラとともに管理され、Kotlin コンパイラと同じバージョンを使用します。構成の詳細については、Compose Compiler Gradle プラグインをご覧ください。

Kotlin 2.0 より前は、お使いの Kotlin バージョンと互換性のあるバージョンを使用する必要があります。対応する Kotlin バージョンは、 プラグインのバージョンを Compose と Kotlin の互換性マップ、および Compose Compiler で構成します。

BOM の指定と異なるライブラリ バージョンを使用するにはどうすればよいですか?

build.gradle の dependencies セクションで、BOM プラットフォームのインポートはそのままにして、ライブラリ依存関係のインポートで、オーバーライドするバージョンを指定します。たとえば、BOM で指定されているバージョンに関係なく、アニメーション ライブラリの新しいバージョンを使用する場合の、依存関係を宣言する方法を次に示します。

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2024.09.03")
    implementation(composeBom)

    // Override the BOM version when needed
    implementation("androidx.compose.animation:animation:1.8.0-alpha03")

    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform("androidx.compose:compose-bom:2024.09.03")
    implementation composeBom

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.8.0-alpha03'

    // ..
}

BOM はすべての Compose ライブラリを自動的にアプリに追加しますか?

いいえ。アプリに Compose ライブラリを実際に追加して使用するには、モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で、各ライブラリを個別の依存関係の行として宣言する必要があります。

BOM を使用すると、アプリ内の任意の Compose ライブラリのバージョンの互換性を維持できますが、BOM が実際にそれらの Compose ライブラリをアプリに追加することはありません。

将来的に、Compose ライブラリは個別にバージョニングされる予定です。つまり、バージョン番号はそれぞれ独自のペースでインクリメントされるようになります。各ライブラリの最新の安定版リリースは一緒にテストされます。ただし、 各ライブラリの最新の安定版は難しい場合があり、BOM が 自動的に最新バージョンを使用できるようになります。

BOM の使用は義務ですか?

いいえ。個々の依存関係バージョンを手動で追加することもできます。ただし、 BOM を使用することをおすすめします。これにより、最新のインフラストラクチャを 同時にサポートしています。

BOM をバージョン カタログと一緒に使用できますか?

はい。BOM 自体をバージョン カタログに含めると、他の Compose ライブラリ バージョンを省略できます。

[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }

モジュールの build.gradle に BOM をインポートすることを忘れないでください。

Kotlin

dependencies {
    val composeBom = platform(libs.androidx.compose.bom)
    implementation(composeBom)
    androidTestImplementation(composeBom)

    // import Compose dependencies as usual
}

Groovy

dependencies {
    Dependency composeBom = platform(libs.androidx.compose.bom)
    implementation composeBom
    androidTestImplementation(composeBom)

    // import Compose dependencies as usual
}

Compose ライブラリのアルファ版またはベータ版リリースを試すにはどうすればよいでしょうか?

利用可能な Compose BOM は 3 つあります。各 BOM は、利用可能な最新バージョンの Compose ライブラリの特定の時点のスナップショットです。

  • Stable - 各ライブラリの最新の安定版が含まれます
  • ベータ版 - 各ライブラリの最新のベータ版、リリース候補版(RC)、安定版が含まれています。
  • アルファ版 - 各ライブラリの最新のアルファ版、ベータ版、RC 版、安定版が含まれています

BOM のアルファ版とベータ版は、BOM アーティファクト名に -alpha-beta を追加して指定します。安定版には接尾辞がありません。

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom-alpha:2024.09.03")
    //            or platform("androidx.compose:compose-bom-beta:2024.09.03")
    implementation(composeBom)
    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.09.03')
    //                   or platform('androidx.compose:compose-bom-beta:2024.09.03')
    implementation composeBom
    // ..
}

BOM に関する問題を報告したり、フィードバックを送信したりするにはどうすればよいですか?

Issue Tracker で問題を報告できます。