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.
Mengapa BOM menjadi cara yang disarankan untuk mengelola versi library Compose?
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.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Desain Material 3 di Compose
- ConstraintLayout di Compose
- Resource di Compose