Compose Bill of Material (BOM) memungkinkan Anda mengelola semua versi library Compose dengan hanya menentukan 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.10.01") 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.10.01') 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.
Mulai Kotlin 2.0, compiler aplikasi Compose dikelola bersama compiler Kotlin dan menggunakan versi yang sama dengan compiler Kotlin. Lihat Plugin Gradle Compose Compiler untuk mengetahui detail konfigurasi.
Sebelum Kotlin 2.0, Anda harus memastikan 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, dan cara mengonfigurasinya di Compiler Compose.
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 penggantian. Misalnya, berikut cara mendeklarasikan
dependensi jika Anda ingin menggunakan library animasi versi yang lebih baru, apa pun
versi yang ditetapkan di BOM:
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.8.0-alpha05") // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.8.0-alpha05' // .. }
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 bersama. Namun, menemukan versi stabil terbaru dari setiap library bisa jadi tidak mudah, dan BOM membantu Anda menggunakan versi terbaru ini 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 jika saya ingin mencoba rilis alfa atau beta library Compose?
Ada tiga BOM Compose yang tersedia. Setiap BOM adalah snapshot titik waktu dari versi library Compose terbaru yang tersedia.
- Stabil - berisi versi stabil terbaru dari setiap library
- Beta - berisi versi beta terbaru, kandidat rilis (RC), atau stabil dari setiap library
- Alfa - berisi versi alfa, beta, RC, atau stabil terbaru dari setiap library
Versi Alpha dan Beta BOM ditentukan dengan menambahkan -alpha
dan
-beta
ke nama artefak BOM. Versi stabil tidak memiliki akhiran.
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2024.10.01") // or platform("androidx.compose:compose-bom-beta:2024.10.01") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.10.01') // or platform('androidx.compose:compose-bom-beta:2024.10.01') implementation composeBom // .. }
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
- Referensi di Compose