Cómo usar la lista de materiales

La lista de materiales (BoM) de Compose te permite administrar toda tu biblioteca de Compose versiones especificando solo la versión de la BoM. La BoM en sí tiene vínculos a las versiones estables de las diferentes bibliotecas de Compose, de modo que funcionen bien en conjunto. Cuando usas la BoM en tu app, no necesitas agregar ninguna versión a las dependencias de la biblioteca de Compose. Cuando actualizas la versión de BoM, todas las bibliotecas que usas se actualizan automáticamente a sus versiones nuevas.

Kotlin

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")
}

Groovy

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'
}

Para descubrir qué versiones de la biblioteca de Compose se asignan a una versión específica de la BoM, consulta la asignación de la versión de la BoM a la biblioteca.

¿Por qué no se incluye la biblioteca del compilador de Compose en la BoM?

La extensión del compilador de Kotlin para Compose (androidx.compose.compiler) no está vinculada a las versiones de la biblioteca de Compose. En cambio, está vinculada a versiones de Kotlin de compilación y se lanzó en una cadencia independiente del resto de Compose, por lo que asegúrate de usar una versión que sea compatible con tu versión de Kotlin. Puedes encontrar la versión de Kotlin que se asigna a cada versión del complemento en el mapa de compatibilidad de Compose para Kotlin.

¿Cómo uso una versión de biblioteca diferente a la designada en la BoM?

En la sección de dependencias build.gradle, mantén la importación de la plataforma BoM. En la importación de dependencias de la biblioteca, especifica la versión deseada. Para ejemplo, aquí te mostramos cómo declarar si quieres usar una versión más nueva de la biblioteca de animaciones, sin importar qué versión esté designada en la BoM:

Kotlin

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")

    // ..
}

Groovy

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'

    // ..
}

¿La BoM agrega todas las bibliotecas de Compose a mi app automáticamente?

No. Para agregar y usar bibliotecas de Compose en tu app, debes declarar cada biblioteca como una línea de dependencia separada en el archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app).

Usar la BoM garantiza que las versiones de las bibliotecas de Compose en tu app sean compatibles, pero la BoM no agrega esas bibliotecas a tu app.

En el futuro, las versiones de las bibliotecas de Compose se controlarán de forma independiente, lo que significa que los números de versión comenzarán a aumentar a su propio ritmo. Las versiones estables más recientes de cada biblioteca se prueban y se garantiza que funcionen bien juntas. Sin embargo, encontrar las versiones estables más recientes de cada biblioteca puede ser difícil, y la BoM te ayuda a usarlas automáticamente.

¿Tengo la obligación de usar la BoM?

No. Aún puedes optar por agregar cada versión de dependencia manualmente. Sin embargo, recomendamos usar la BoM ya que facilitará el uso de todas las versiones estables más recientes al mismo tiempo.

¿La BoM funciona con catálogos de versiones?

Sí. Puedes incluir la BoM en el catálogo de versiones y omitir las otras versiones de la biblioteca de Compose:

[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }

No te olvides de importar la BoM en el build.gradle de tu 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
}

¿Cómo informo un problema o envío comentarios sobre la BoM?

Puedes informar problemas en nuestra herramienta de seguimiento de errores.