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