使用物料清單

Compose 物料清單 (BOM) 可讓您管理所有 Compose 程式庫 方法是指定 只有 BOM 版本。BOM 本身具有不同 Compose 程式庫的穩定版本連結,以便順暢搭配運作。在應用程式中使用 BOM 時,不需要將任何版本加到 Compose 程式庫依附元件。更新 BOM 版本後,您使用的所有程式庫都會自動更新至新版本。

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2024.06.00")
    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.06.00')
    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 版本相容的版本。您可以在 Compose 對應 Kotlin 的相容性清單中找到對應至每個外掛程式版本的 Kotlin 版本。

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

build.gradle 依附元件區段中,保留 BOM 平台的匯入內容。在程式庫依附元件匯入內容中,指定所需版本。適用對象 舉例來說,以下說明如何 如果您要使用較新版本的動畫程式庫,請一律禁止依附元件 取決於 BOM 中指定的版本:

Kotlin

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

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

    // ..
}

Groovy

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

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.7.0-beta05'

    // ..
}

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
}

如何回報 BOM 相關問題或提供意見回饋?

您可以透過 Issue Tracker 回報問題。