Menggunakan Bill of Materials

Bill of Materials (BOM) Compose memungkinkan Anda mengelola semua library Compose dengan menentukan hanya versi BOM. BOM memiliki link ke versi stabil library Compose yang berbeda, sedemikian rupa sehingga dapat digunakan bersama. Saat menggunakan BOM di aplikasi, Anda tidak perlu menambahkan versi apa pun ke dependensi library Compose itu sendiri. Saat Anda mengupdate versi BOM, semua library yang digunakan akan otomatis diupdate ke versi terbaru.

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'
}

Untuk mengetahui versi library Compose mana yang dipetakan ke versi BOM tertentu, lihat Pemetaan BOM ke versi library.

Mengapa library Compose Compiler tidak disertakan dalam BOM?

Ekstensi compiler Kotlin Compose (androidx.compose.compiler) tidak ditautkan ke versi library Compose. Sebagai gantinya, ekstensi ini ditautkan ke versi plugin compiler Kotlin dan dirilis dalam ritme yang terpisah dari Compose lainnya, jadi pastikan untuk menggunakan versi yang kompatibel dengan versi Kotlin Anda. Anda dapat menemukan versi Kotlin yang dipetakan ke setiap versi plugin di Peta Kompatibilitas Compose ke Kotlin.

Bagaimana cara menggunakan versi library yang berbeda dari yang ditetapkan di BOM?

Di bagian dependensi build.gradle, pertahankan impor platform BOM. Pada impor dependensi library, tentukan versi yang diinginkan. Sebagai berikut ini cara mendeklarasikan dependensi jika ingin menggunakan versi library animasi yang lebih baru, tidak masalah versi apa yang ditetapkan dalam 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'

    // ..
}

Apakah BOM secara otomatis menambahkan semua library Compose ke aplikasi saya?

Tidak. Untuk menambahkan dan menggunakan library Compose di aplikasi, Anda harus mendeklarasikan setiap library sebagai baris dependensi terpisah dalam file Gradle modul (level aplikasi) (biasanya app/build.gradle).

Penggunaan BOM akan memastikan bahwa versi library Compose di aplikasi Anda kompatibel, tetapi BOM tidak benar-benar menambahkan library Compose tersebut ke aplikasi Anda.

Ke depannya, library Compose akan diberi versi secara independen, yang berarti nomor versi akan mulai bertambah seiring waktu. Rilis stabil terbaru dari setiap library diuji dan dijamin berfungsi dengan baik bersama-sama. Namun, menemukan versi stabil terbaru dari setiap library bisa jadi tidak mudah, dan BOM membantu Anda untuk menggunakan versi terbaru secara otomatis.

Apakah saya dipaksa menggunakan BOM?

Tidak. Anda masih dapat memilih untuk menambahkan setiap versi dependensi secara manual. Namun, sebaiknya gunakan BOM karena akan mempermudah penggunaan semua versi stabil terbaru secara bersamaan.

Apakah BOM dapat digunakan dengan katalog versi?

Ya. Anda dapat menyertakan BOM itu sendiri dalam katalog versi, dan menghapus versi library Compose lainnya:

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

Jangan lupa untuk mengimpor BOM dalam build.gradle modul Anda:

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
}

Bagaimana cara melaporkan masalah atau menawarkan masukan tentang BOM?

Anda dapat melaporkan masalah di issue tracker kami.