使用物料清單

您只要指定 BOM 版本,即可利用 Compose 物料清單 (BOM) 管理所有 Compose 程式庫版本。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'
}

如要瞭解哪些 Compose 程式庫版本對應至特定的 BOM 版本,請參閱 BOM 與程式庫版本對應清單

為什麼 BOM 沒有納入 Compose Compiler 程式庫?

Compose Kotlin 編譯器擴充功能 (androidx.compose.compiler) 未連結 Compose 程式庫版本而是連結至 Kotlin 編譯器外掛程式的版本,且發布頻率與 Compose 的其餘部分不同。

從 Kotlin 2.0 開始,Compose 應用程式編譯器會與 Kotlin 一起管理 並使用與 Kotlin 編譯器相同的版本。 如需設定詳細資訊,請參閱「Compose Compiler Gradle 外掛程式」。

如果使用 Kotlin 2.0 之前的版本,請務必使用相容的版本 您的 Kotlin 版本。您可以在 Compose 對應 Kotlin 的相容性清單中找到對應至每個外掛程式版本的 Kotlin 版本,以及如何在 Compose Compiler 中設定。

如何使用與 BOM 中指定版本不同的程式庫版本?

build.gradle 依附元件區段中,保留 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 程式庫的 Alpha 版或 Beta 版,該怎麼做?

Compose BOM 有三個可用。每個 BOM 都是特定時間點的數據匯報 最新的 Compose 程式庫版本

  • 穩定版:包含各程式庫的最新穩定版
  • Beta 版:包含每個程式庫的最新 Beta 版、候選版 (RC) 或穩定版
  • Alpha - 包含每個程式庫的最新 Alpha、Beta、候選版或穩定版

BOM 的 Alpha 和 Beta 版本是透過加上 -alpha 及 將 -beta 設為 BOM 構件名稱。穩定版沒有後置字串。

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 回報問題。