Używanie listy materiałów

Tworzenie listy materiałów (BOM) umożliwia zarządzanie wszystkimi wersjami biblioteki Compose przez określenie tylko wersji BOM. Sam plik BOM zawiera linki do stabilnych wersji różnych bibliotek Compose, które są ze sobą dobrze zintegrowane. Gdy używasz BOM w swojej aplikacji, nie musisz dodawać żadnej wersji do zależności biblioteki tworzenia wiadomości. Gdy zaktualizujesz wersję pliku BOM, wszystkie używane przez Ciebie biblioteki zostaną automatycznie zaktualizowane do ich nowych wersji.

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")
}

Odlotowe

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

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

Dlaczego biblioteka Compose Compiler nie jest uwzględniona w pliku BOM?

Rozszerzenie kompilatora Kotlina do Compose (androidx.compose.compiler) nie jest powiązane z wersjami biblioteki Compose. Zamiast tego jest on powiązany z wersjami wtyczki kompilatora Kotlin i publikowany w odrębnym cyklu od reszty narzędzia 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 artykule na temat wtyczki do Gradle kompilatora Compose.

Przed wersją Kotlin 2.0 musisz użyć wersji zgodnej z Twoją wersją Kotlina. Wersję Kotlina mapowaną na każdą wersję wtyczki znajdziesz na stronie Compose to Kotlin Compatibility Map (Utwórz mapę zgodności z Kotlinem), a informacje o tym, jak skonfigurować tę wtyczkę w Compose Compiler.

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

W sekcji build.gradle zależności zachowaj import 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 pliku BOM, musisz 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: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'

    // ..
}

Czy plik BOM automatycznie dodaje do mojej aplikacji wszystkie biblioteki Compose?

Nie. Aby dodać do aplikacji biblioteki Compose i z nich korzystać, musisz zadeklarować każdą z nich jako osobną linię zależności w pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle).

Korzystanie z BOM zapewnia zgodność wersji bibliotek Compose w aplikacji, ale BOM nie dodaje tych bibliotek do aplikacji.

W przyszłości wersje bibliotek Compose będą tworzone niezależnie, co oznacza, że numery wersji będą zwiększane we własnym tempie. Najnowsze stabilne wersje każdej biblioteki są testowane razem. Znajdowanie najnowszych stabilnych wersji każdej biblioteki może być jednak trudne, a plik BOM pomaga automatycznie używać tych najnowszych wersji.

Czy muszę używać pliku BOM?

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

Czy plik BOM działa z katalogami wersji?

Tak. W katalogu wersji możesz uwzględnić sam plik BOM, pomijając inne wersje biblioteki:

[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ć listy materiałowej do build.gradle w module:

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 listy materiałów do tworzenia. Każda BOM to migawka z najnowszej wersji bibliotek Compose.

  • Stabilna – zawiera najnowsze stabilne wersje każdej biblioteki
  • Beta – zawiera najnowsze wersje beta, wersje kandydata (RC) i stabilne każdej biblioteki.
  • Alpha – zawiera najnowsze wersje alfa, beta, RC lub stabilne każdej biblioteki.

Wersje alfa i beta pliku BOM są określane przez dodanie -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:2024.10.01")
    //            or platform("androidx.compose:compose-bom-beta:2024.10.01")
    implementation(composeBom)
    // ..
}

Odlotowe

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

Jak zgłosić problem lub przesłać opinię na temat listy materiałów?

Problemy możesz zgłaszać za pomocą naszego narzędzia do śledzenia problemów.