Составление спецификации (BOM) позволяет вам управлять всеми версиями библиотеки Compose, указав только версию спецификации. Сама спецификация содержит ссылки на стабильные версии различных библиотек Compose, поэтому они хорошо работают вместе. При использовании спецификации в вашем приложении вам не нужно добавлять какую-либо версию в сами зависимости библиотеки Compose. Когда вы обновляете версию спецификации, все используемые вами библиотеки автоматически обновляются до новых версий.
Котлин
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.06.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:2024.06.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 сопоставлены с конкретной версией спецификации, проверьте сопоставление версий спецификации с библиотекой .
Почему библиотека Compose Compiler не включена в спецификацию?
Расширение компилятора Compose Kotlin (androidx.compose.compiler) не связано с версиями библиотеки Compose. Вместо этого он связан с версиями плагина компилятора Kotlin и выпускается отдельно от остальной части Compose, поэтому обязательно используйте версию, совместимую с вашей версией Kotlin. Вы можете найти версию Kotlin, соответствующую каждой версии плагина, на странице Compose to Kotlin Compatibility Map .
Как использовать версию библиотеки, отличную от указанной в спецификации?
В разделе зависимостей build.gradle
сохраните импорт платформы BOM. При импорте зависимостей библиотеки укажите нужную версию. Например, вот как объявить зависимости, если вы хотите использовать более новую версию библиотеки анимации, независимо от того, какая версия указана в спецификации:
Котлин
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.06.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.7.0-beta05") // .. }
классный
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.06.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.7.0-beta05' // .. }
Добавляет ли спецификация автоматически все библиотеки 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 }
Как сообщить о проблеме или оставить отзыв о спецификации?
Вы можете сообщать о проблемах в нашем трекере проблем .
{% дословно %}Рекомендуется для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Material Design 3 в Compose
- ConstraintLayout в Compose
- Ресурсы в Compose