Malzeme Listesi Kullanma

Compose Malzeme Listesi (BOM), yalnızca BOM'un sürümünü belirterek tüm Compose kitaplığı sürümlerinizi yönetmenize olanak tanır. BOM'un kendisinde, farklı Compose kitaplıklarının kararlı sürümlerine yönelik bağlantılar bulunur. Bu bağlantılar, kitaplıkların birlikte iyi çalışmasını sağlayacak şekilde düzenlenmiştir. 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:2025.05.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:2025.05.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'
}

Belirli bir BOM sürümüyle hangi Compose kitaplığı sürümlerinin eşlendiğini öğrenmek için BOM'dan kitaplık sürümüne eşlemeyi inceleyin.

Compose Compiler kitaplığı neden BOM'a dahil edilmiyor?

Compose Kotlin derleyici uzantısı (androidx.compose.compiler), Compose kitaplığı sürümlerine bağlı değil. 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 itibarıyla Compose appcompiler, Kotlin derleyicisiyle birlikte yönetilir ve Kotlin derleyicisiyle aynı sürümü kullanır. Yapılandırma ayrıntıları için Compose Compiler Gradle eklentisi başlıklı makaleyi inceleyin.

Kotlin 2.0'dan önce, Kotlin sürümünüzle uyumlu bir sürüm kullandığınızdan emin olmanız gerekir. Eklentinin her sürümüne karşılık gelen Kotlin sürümünü Compose to Kotlin Compatibility Map (Compose-Kotlin Uyumluluk Haritası) sayfasında, nasıl yapılandırılacağını ise Compose Compiler (Compose Derleyici) sayfasında bulabilirsiniz.

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

build.gradle dependencies bölümünde BOM platform'un içe aktarılmasını sağlayın. Kitaplık bağımlılığı içe aktarma işleminde geçersiz kılınan sürümü belirtin. Örneğin, BOM'da hangi sürüm belirtilirse belirtilsin animasyon kitaplığının daha yeni bir sürümünü kullanmak istiyorsanız bağımlılıkları şu şekilde bildirebilirsiniz:

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2025.05.00")
    implementation(composeBom)

    // Override the BOM version when needed
    implementation("androidx.compose.animation:animation:1.9.0-alpha02")

    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform("androidx.compose:compose-bom:2025.05.00")
    implementation composeBom

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.9.0-alpha02'

    // ..
}

BOM, Compose kitaplıklarının tamamını uygulamama otomatik olarak ekler mi?

Hayır. Compose kitaplıklarını uygulamanıza ekleyip kullanmak için her kitaplığı modülünüzde (uygulama düzeyinde) 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ümlendirilecek. Bu da sürüm numaralarının kendi hızlarında artmaya başlayacağı anlamına geliyor. 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 ve BOM, bu en son sürümleri otomatik olarak kullanmanıza yardımcı olur.

BOM'u kullanmak zorunda mıyım?

Hayır. Her bağımlılık sürümünü manuel olarak eklemeyi seçebilirsiniz. Ancak, en yeni 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. Sürüm kataloğuna BOM'un kendisini ekleyebilir ve diğer Compose 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 içine 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 yapmalıyım?

Üç farklı Compose BOM'u vardır. Her BOM, Compose kitaplıklarının 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, yayın 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ıt 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:2025.05.00")
    //            or platform("androidx.compose:compose-bom-beta:2025.05.00")
    implementation(composeBom)
    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2025.05.00')
    //                   or platform('androidx.compose:compose-bom-beta:2025.05.00')
    implementation composeBom
    // ..
}

BOM ile ilgili sorunları nasıl bildirebilirim veya geri bildirimde bulunabilirim?

Sorunları sorun izleyicimizde bildirebilirsiniz.