Спецификация материалов Compose (BOM) позволяет управлять всеми версиями библиотеки Compose, указывая только её версию. Сама спецификация содержит ссылки на стабильные версии различных библиотек Compose, что обеспечивает их эффективное взаимодействие. При использовании спецификации в приложении вам не нужно добавлять какие-либо версии в зависимости самой библиотеки Compose. При обновлении версии спецификации все используемые вами библиотеки автоматически обновляются до новых версий.
Котлин
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 не включена в спецификацию?
Расширение компилятора Kotlin для Compose (androidx.compose.compiler) не связано с версиями библиотеки Compose. Вместо этого оно связано с версиями плагина компилятора Kotlin и выпускается отдельно от остального Compose.
Начиная с Kotlin 2.0, компилятор приложений Compose управляется параллельно с компилятором Kotlin и использует ту же версию, что и компилятор Kotlin. Подробнее о настройке см. в разделе «Плагин Gradle для компилятора Compose» .
До версии Kotlin 2.0 необходимо использовать версию, совместимую с вашей версией Kotlin. Версию Kotlin, соответствующую каждой версии плагина, можно найти на странице Compose to Kotlin Compatibility Map (Схема совместимости Compose и Kotlin) , а инструкцию по настройке — на странице Compose Compiler (Компилятор Compose) .
Как использовать версию библиотеки, отличную от той, что указана в спецификации?
В разделе зависимостей 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
к имени артефакта 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