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.09.03") 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.09.03') 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, ela está vinculada a versões do plug-in do compilador Kotlin e foi lançada em outra cadência do Compose.
A partir do Kotlin 2.0, o appcompiler do Compose é gerenciado com o compilador Kotlin e usa a mesma versão. Consulte Plug-in do Gradle para Compose Compiler para conferir 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.09.03") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.8.0-alpha03") // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.09.03") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.8.0-alpha03' // .. }
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, e a BoM ajuda você a usar essas versões mais recentes automaticamente.
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 disponíveis do Compose. Cada BoM é um snapshot de um ponto no tempo 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.09.03") // or platform("androidx.compose:compose-bom-beta:2024.09.03") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.09.03') // or platform('androidx.compose:compose-bom-beta:2024.09.03') 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