Compose Malzeme Listesi (BOM), yalnızca BOM'un sürümünü belirterek tüm Compose kitaplık sürümlerinizi yönetmenize olanak tanır. BOM'nin kendisi, farklı Compose kitaplıklarının sabit sürümlerinin, birlikte iyi çalışacak şekilde bağlantılarına sahiptir. Uygulamanızda BOM'yi kullanırken, Compose kitaplığı bağımlılıklarına herhangi bir sürüm eklemeniz gerekmez. BOM sürümünü güncellediğinizde, kullandığınız tüm kitaplıklar otomatik olarak yeni sürümlerine güncellenir.
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' }
Hangi Compose kitaplık sürümlerinin belirli bir BOM sürümüyle eşlendiğini öğrenmek için BOM ile kitaplık sürümü eşlemesi bölümüne bakın.
Compose derleyici kitaplığı neden BOM'a dahil edilmez?
Compose Kotlin derleyici uzantısı (androidx.compose.compiler), Compose kitaplığı sürümlerine bağlı değildir. Bunun yerine, Kotlin derleyici eklentisinin sürümleriyle bağlantılıdır ve Compose'un geri kalanından ayrı bir tempoda yayınlanır.
Kotlin 2.0'dan itibaren Compose uygulama derleyicisi, Kotlin derleyicisiyle birlikte yönetilir ve Kotlin derleyicisiyle aynı sürümü kullanır. Yapılandırma ayrıntıları için Compose Derleyici Gradle eklentisi başlıklı makaleyi inceleyin.
Kotlin 2.0'dan önceki sürümlerde, Kotlin sürümünüzle uyumlu bir sürüm kullandığınızdan emin olmanız gerekir. Eklentinin her sürümüyle eşlenen Kotlin sürümünü Kotlin Uyumluluk Haritası ile Oluştur ve Oluşturma Derleyicisi'nde nasıl yapılandıracağınızı bulabilirsiniz.
BOM'de belirtilenden farklı bir kitaplık sürümünü nasıl kullanabilirim?
build.gradle
bağımlılıkları bölümünde BOM platformunun içe aktarımını koruyun. Kitaplık bağımlılığı içe aktarma işleminde geçersiz kılma sürümünü belirtin. Örneğin, BOM'de hangi sürümün belirtildiğinden bağımsız olarak, animasyon kitaplığının daha yeni bir sürümünü kullanmak istiyorsanız bağımlılıkları nasıl bildireceğiniz aşağıda açıklanmıştır:
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") // .. }
Eski
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, tüm Compose kitaplıklarını uygulamama otomatik olarak ekler mi?
Hayır. Compose kitaplıklarını uygulamanıza ekleyip kullanmak için her kitaplığı modül (uygulama düzeyi) Gradle dosyanızda (genellikle app/build.gradle) ayrı bir bağımlılık satırı olarak tanımlamanız gerekir.
BOM'yi kullanmak, uygulamanızdaki Compose kitaplıklarının sürümlerinin uyumlu olmasını sağlar, ancak BOM, bu Compose kitaplıklarını uygulamanıza eklemez.
Compose kitaplık sürümlerini yönetmek için neden BOM önerilir?
Bundan sonra Compose kitaplıkları bağımsız olarak sürümlenecek. Yani sürüm numaraları kendi hızlarında artmaya başlayacak. Her kitaplığın en yeni kararlı sürümleri birlikte test edilir. Bununla birlikte, her kitaplığın en yeni kararlı sürümlerini bulmak zor olabilir ve BOM, bu son sürümleri otomatik olarak kullanmanıza yardımcı olur.
BOM'yi kullanmak zorunda mıyım?
Hayır. Her bağımlı sürümünü manuel olarak eklemeyi seçebilirsiniz. Ancak, en son kararlı sürümlerin tümünü aynı anda kullanmayı kolaylaştıracağından BOM'u kullanmanızı öneririz.
BOM, sürüm kataloglarıyla çalışır mı?
Evet. BOM'u sürüm kataloğuna ekleyebilir ve diğer derleme kitaplığı sürümlerini atlayabilirsiniz:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
BOM'u modülünüzün build.gradle
bölümüne aktarmayı unutmayın:
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 kitaplıklarının alfa veya beta sürümlerini denemek istersem ne olur?
Kullanabileceğiniz üç adet Oluşturma BOM'si vardır. Her BOM, Compose kitaplıklarının mevcut en son sürümlerinin belirli bir zamandaki anlık görüntüsüdür.
- Kararlı: Her kitaplığın en son kararlı sürümlerini içerir.
- Beta: Her kitaplığın en son beta, sürüm adayı (RC) veya kararlı sürümlerini içerir.
- Alfa: Her kitaplığın en son alfa, beta, RC veya kararlı sürümlerini içerir.
BOM'nin Alfa ve Beta sürümleri, BOM yapısı adına -alpha
ve -beta
eklenerek belirtilir. Kararlı sürümde sonek yoktur.
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 // .. }
Nasıl sorun bildirebilirim veya BOM ile ilgili geri bildirimde bulunabilirim?
Sorunları sorun izleyicimizde bildirebilirsiniz.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- E-posta Yazma'da Materyal Tasarım 3
- Compose'da ConstraintLayout
- Oluşturma bölümündeki kaynaklar