Używanie listy materiałów

Zestawienie materiałów (BOM) Compose umożliwia zarządzanie wszystkimi wersjami biblioteki Compose przez określenie tylko wersji BOM. Sam BOM zawiera linki do stabilnych wersji różnych bibliotek Compose, które są ze sobą kompatybilne. Jeśli używasz BOM w aplikacji, nie musisz dodawać żadnej wersji do zależności biblioteki Compose. Gdy zaktualizujesz wersję BOM, wszystkie używane biblioteki zostaną automatycznie zaktualizowane do nowych wersji.

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

Aby dowiedzieć się, które wersje biblioteki Compose są mapowane na konkretną wersję BOM, zapoznaj się z mapowaniem BOM na wersję biblioteki.

Dlaczego biblioteka kompilatora Compose nie jest uwzględniona w BOM?

Rozszerzenie kompilatora Kotlin Compose (androidx.compose.compiler) nie jest połączone z wersjami biblioteki Compose. Jest on powiązany z wersjami wtyczki kompilatora Kotlin i publikowany w innym tempie niż pozostałe komponenty Compose.

Od wersji Kotlin 2.0 kompilator aplikacji Compose jest zarządzany razem z kompilatorem Kotlin i używa tej samej wersji co kompilator Kotlin. Szczegóły konfiguracji znajdziesz w sekcji Wtyczka Gradle kompilatora Compose.

Przed Kotlinem 2.0 musisz używać wersji, która jest zgodna z Twoją wersją Kotlina. Wersję Kotlina, która jest mapowana na każdą wersję wtyczki, znajdziesz na stronie Mapowanie zgodności Compose z Kotlinem. Informacje o tym, jak ją skonfigurować, znajdziesz w artykule Kompilator Compose.

Jak używać innej wersji biblioteki niż ta wskazana w BOM?

W sekcji build.gradledependencies pozostaw importowanie platformy BOM. Podczas importowania zależności biblioteki określ wersję zastępującą. Jeśli na przykład chcesz używać nowszej wersji biblioteki animacji, niezależnie od wersji wskazanej w BOM, możesz zadeklarować zależności w ten sposób:

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'

    // ..
}

Czy BOM automatycznie dodaje do mojej aplikacji wszystkie biblioteki Compose?

Nie. Aby dodać biblioteki Compose do aplikacji i ich używać, musisz zadeklarować każdą bibliotekę jako osobny wiersz zależności w pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle).

Użycie BOM zapewnia, że wersje bibliotek Compose w aplikacji są ze sobą zgodne, ale BOM nie dodaje tych bibliotek do aplikacji.

Od tej pory biblioteki Compose będą wersjonowane niezależnie, co oznacza, że numery wersji będą zwiększane w różnym tempie. Najnowsze stabilne wersje każdej biblioteki są testowane razem. Znalezienie najnowszych stabilnych wersji każdej biblioteki może być jednak trudne, a BOM pomaga automatycznie korzystać z tych najnowszych wersji.

Czy muszę używać BOM?

Nie. Nadal możesz ręcznie dodawać każdą wersję zależności. Zalecamy jednak korzystanie z BOM, ponieważ ułatwia to jednoczesne używanie wszystkich najnowszych stabilnych wersji.

Czy BOM działa z katalogami wersji?

Tak. Możesz uwzględnić samą BOM w katalogu wersji i pominąć inne wersje biblioteki Compose:

[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }

Nie zapomnij zaimportować BOM-u w build.gradle modułu:

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
}

Co zrobić, jeśli chcę wypróbować wersje alfa lub beta bibliotek Compose?

Dostępne są 3 zestawienia materiałowe. Każda lista materiałowa to migawka w czasie najnowszych dostępnych wersji bibliotek Compose.

  • Stabilna – zawiera najnowsze stabilne wersje każdej biblioteki.
  • Beta – zawiera najnowsze wersje beta, kandydujące do wydania (RC) lub stabilne każdej biblioteki.
  • Alpha – zawiera najnowsze wersje alfa, beta, RC lub stabilne każdej biblioteki.

Wersje alfa i beta BOM są określane przez dodanie znaków -alpha-beta do nazwy artefaktu BOM. Wersja stabilna nie ma sufiksu.

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
    // ..
}

Jak zgłosić problem lub przesłać opinię o BOM?

Problemy możesz zgłaszać w naszym narzędziu do rejestrowania błędów.