A lista de materiais (BoM) do Compose permite gerenciar todas as versões da biblioteca do Compose especificando apenas a versão da BoM. A BoM tem links para as versões estáveis das diferentes bibliotecas do Compose de maneira que elas funcionem bem juntas. Ao usar a BoM no app, não é necessário adicionar nenhuma versão às dependências de biblioteca do Compose. Quando você atualiza a versão da BoM, todas as bibliotecas que você está usando são atualizadas de forma automática para as novas versões.
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") }
Groovy
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' }
Para descobrir quais versões de bibliotecas do Compose correspondem a uma versão específica da BoM, confira a seção Mapeamento de versão da BoM e de bibliotecas.
Por que a biblioteca Compose Compiler não está inclusa na BoM?
A extensão do compilador Kotlin do Compose (androidx.compose.compiler) não está vinculada às versões de biblioteca do Compose. Em vez disso, ele está vinculado às versões do plug-in do compilador Kotlin e foi lançado em uma cadência separada do restante do Compose.
A partir do Kotlin 2.0, o appcompiler do Compose é gerenciado com o compilador Kotlin e usa a mesma versão. Consulte o plug-in do Gradle do Compose Compiler para detalhes de configuração.
Antes da Kotlin 2.0, era necessário usar uma versão compatível com a versão do Kotlin. Você encontra a versão do Kotlin que corresponde a cada versão do plug-in no Mapa de compatibilidade do Compose para Kotlin e como configurá-lo no Compilador do Compose.
Como usar uma versão de biblioteca diferente da que é designada na BoM?
Na seção de dependências do build.gradle
, mantenha a importação da plataforma
BoM. Na importação das dependências da biblioteca, especifique a versão substituída. Por
exemplo, veja como declarar
dependências se você quer usar uma versão mais recente da biblioteca de animação, independente
da versão designada na BoM:
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' // .. }
A BoM adiciona de forma automática todas as bibliotecas do Compose ao meu app?
Não. Para adicionar e usar bibliotecas do Compose no seu app, é necessário declarar cada biblioteca como uma linha de dependência separada no arquivo Gradle do módulo no nível do app, geralmente em app/build.gradle.
O uso da BoM garante que as versões de qualquer biblioteca do Compose no seu app sejam compatíveis, mas ela não adiciona essas bibliotecas ao seu app.
Por que a BoM é a maneira recomendada de gerenciar versões das bibliotecas do Compose?
A partir de agora, as bibliotecas do Compose serão criadas de maneira independente, o que significa que os números de versão vão começar a ser incrementados no próprio ritmo. As versões estáveis mais recentes de cada biblioteca são testadas juntas. No entanto, encontrar as versões estáveis mais recentes de cada biblioteca pode ser difícil. Por isso, a BoM ajuda você a usar essas versões de forma automática.
O uso da BoM é obrigatório?
Não. Você ainda pode adicionar cada versão de dependência manualmente. No entanto, recomendamos a BoM, porque ela facilita o uso de todas as versões estáveis mais recentes ao mesmo tempo.
A BoM funciona com os catálogos de versões?
Sim. É possível incluir a BoM no catálogo de versões e omitir as outras versões de biblioteca do Compose:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
Não se esqueça de importar a BoM no build.gradle
do módulo:
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 }
E se eu quiser testar versões Alfa ou Beta das bibliotecas do Compose?
Há três BOMs do Compose disponíveis. Cada BoM é um snapshot pontual das versões mais recentes disponíveis das bibliotecas do Compose.
- Estável: contém as versões estáveis mais recentes de cada biblioteca
- Beta: contém as versões beta, candidatas à versão de lançamento (RC) ou estáveis mais recentes de cada biblioteca.
- Alfa: contém as versões Alfa, Beta, RC ou estáveis mais recentes de cada biblioteca.
As versões Alfa e Beta da BoM são especificadas adicionando -alpha
e
-beta
ao nome do artefato da BoM. A versão estável não tem sufixo.
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) // .. }
Groovy
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 // .. }
Como posso informar um problema ou enviar feedback sobre a BoM?
Você pode registrar problemas no nosso Issue Tracker.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Material Design 3 no Compose
- ConstraintLayout no Compose
- Recursos no Compose