Malzeme Listesi Kullanma

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'u 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.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")
}

Eski

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

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şlemesine göz atı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ümlerine bağlanır ve Compose'un geri kalanından ayrı bir ritimde yayınlanır.

Kotlin 2.0 sürümünden itibaren, Compose uygulama derleyicisi Kotlin derleyicisi ile birlikte yönetilir ve Kotlin derleyiciyle 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şleşen Kotlin sürümünü Compose to Kotlin Compatibility Map (Compose to Kotlin Uyumluluk Haritası) sayfasında, nasıl yapılandıracağınızı ise Compose Compiler (Compose Derleyicisi) sayfasında bulabilirsiniz.

BOM'da belirtilenden farklı bir kitaplık sürümü nasıl kullanabilirim?

build.gradle bağımlılıklar bölümünde, BOM platformunun içe aktarılmasını sürdürün. Kitaplık bağımlılığı içe aktarma işleminde geçersiz kılma sürümünü belirtin. Örneğin, BOM'da hangi sürümün belirtildiğine bakılmaksızın animasyon kitaplığının daha yeni bir sürümünü kullanmak istiyorsanız bağımlılıkları nasıl beyan edeceğinizi aşağıda bulabilirsiniz:

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'

    // ..
}

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'u kullanmak, uygulamanızdaki tüm Compose kitaplıklarının sürümlerinin uyumlu olmasını sağlar ancak BoM, bu Compose kitaplıklarını uygulamanıza eklemez.

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 son kararlı sürümleri birlikte test edilir. Ancak her kitaplığın en son kararlı sürümlerini bulmak zor olabilir. BOM, bu en son sürümleri otomatik olarak kullanmanıza yardımcı olur.

BOM'u kullanmak zorunda mıyım?

Hayır. Yine de her bağımlılık sürümünü manuel olarak eklemeyi seçebilirsiniz. Bununla birlikte, en yeni kararlı sürümleri aynı anda kullanmayı kolaylaştıracağı için BOM'yi 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
}

Eski

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?

Üç adet BOM oluşturma seçeneği 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'un alfa ve beta sürümleri, BOM yapı adı başı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.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
    // ..
}

Nasıl sorun bildirebilirim veya BOM ile ilgili geri bildirimde bulunabilirim?

Sorun izleyicimizde sorun bildirebilirsiniz.