Compose Bill of Materials (BOM) позволяет вам управлять всеми версиями библиотеки Compose, указывая только версию BOM. Сам BOM имеет ссылки на стабильные версии различных библиотек Compose, таким образом, что они хорошо работают вместе. При использовании BOM в вашем приложении вам не нужно добавлять какую-либо версию в зависимости библиотеки Compose. При обновлении версии BOM все библиотеки, которые вы используете, автоматически обновляются до новых версий.
Котлин
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") }
Круто
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' }
Чтобы узнать, какие версии библиотеки Compose сопоставлены с определенной версией BOM, ознакомьтесь с сопоставлением BOM с версией библиотеки .
Почему библиотека Compose Compiler не включена в спецификацию?
Расширение компилятора Compose Kotlin (androidx.compose.compiler) не связано с версиями библиотеки Compose. Вместо этого оно связано с версиями плагина компилятора Kotlin и выпускается в отдельной каденции от остальной части Compose.
Начиная с Kotlin 2.0, Compose appcompiler управляется вместе с Kotlin compiler и использует ту же версию, что и Kotlin compiler. Подробности конфигурации см. в Compose Compiler Gradle plugin .
До Kotlin 2.0 вам необходимо убедиться, что вы используете версию, совместимую с вашей версией Kotlin. Вы можете найти версию Kotlin, которая соответствует каждой версии плагина, на Compose to Kotlin Compatibility Map , а как настроить ее на Compose Compiler .
Как использовать версию библиотеки, отличную от той, что указана в спецификации?
В разделе зависимостей build.gradle
сохраните импорт платформы BOM. В импорте зависимости библиотеки укажите переопределяющую версию. Например, вот как объявить зависимости, если вы хотите использовать более новую версию библиотеки анимации, независимо от того, какая версия указана в BOM:
Котлин
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") // .. }
Круто
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 в мое приложение?
Нет. Чтобы фактически добавить и использовать библиотеки Compose в вашем приложении, вы должны объявить каждую библиотеку как отдельную строку зависимости в файле Gradle вашего модуля (уровня приложения) (обычно app/build.gradle).
Использование BOM гарантирует, что версии любых библиотек Compose в вашем приложении совместимы, но BOM фактически не добавляет эти библиотеки Compose в ваше приложение.
Почему BOM является рекомендуемым способом управления версиями библиотеки Compose?
В дальнейшем библиотеки Compose будут иметь независимые версии, что означает, что номера версий начнут увеличиваться в своем собственном темпе. Последние стабильные выпуски каждой библиотеки тестируются вместе. Однако поиск последних стабильных версий каждой библиотеки может быть сложным, и BOM помогает вам автоматически использовать эти последние версии.
Обязан ли я использовать спецификацию?
Нет. Вы по-прежнему можете добавлять каждую версию зависимости вручную. Однако мы рекомендуем использовать BOM, так как это упростит использование всех последних стабильных версий одновременно.
Работает ли спецификация с каталогами версий?
Да. Вы можете включить сам BOM в каталог версий и пропустить другие версии библиотеки Compose:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
Не забудьте импортировать BOM в build.gradle
вашего модуля:
Котлин
dependencies { val composeBom = platform(libs.androidx.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // import Compose dependencies as usual }
Круто
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
Что делать, если я хочу опробовать альфа- или бета-версии библиотек Compose?
Доступны три спецификации Compose. Каждая спецификация — это моментальный снимок последних доступных версий библиотек Compose.
- Стабильная версия — содержит последние стабильные версии каждой библиотеки.
- Бета-версия — содержит последние бета-версии, релиз-кандидаты (RC) или стабильные версии каждой библиотеки.
- Альфа - содержит последние альфа, бета, RC или стабильные версии каждой библиотеки.
Версии BOM Alpha и Beta определяются добавлением -alpha
и -beta
к имени артефакта BOM. Стабильная версия не имеет суффикса.
Котлин
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) // .. }
Круто
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 // .. }
Как сообщить о проблеме или оставить отзыв о спецификации?
Вы можете сообщать о проблемах в нашей системе отслеживания проблем .
{% дословно %}Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Material Design 3 в Compose
- ConstraintLayout в Compose
- Ресурсы в Compose