Utilizzare una distinta materiali

La distinta componenti (BOM) di Compose ti consente di gestire tutte le versioni della libreria Compose specificando solo la versione della BOM. La BOM stessa contiene link alle versioni stabili delle diverse librerie Compose, in modo che funzionino bene insieme. Quando utilizzi il BOM nella tua app, non devi aggiungere alcuna versione alle dipendenze della libreria Compose. Quando aggiorni la versione del BOM, tutte le librerie in uso vengono aggiornate automaticamente alle nuove versioni.

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

Alla moda

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

Per scoprire quali versioni delle librerie Compose sono mappate a una versione BOM specifica, consulta la mappatura della versione BOM alla versione della libreria.

Perché la libreria del compilatore di Compose non è inclusa nel BOM?

L'estensione del compilatore Kotlin di Compose (androidx.compose.compiler) non è collegata alle versioni della libreria Compose. È invece collegato alle versioni del plug-in del compilatore Kotlin e viene rilasciato con una cadenza separata dal resto di Compose.

A partire da Kotlin 2.0, l'appcompilatore Compose è gestito insieme al e utilizza la stessa versione del compilatore Kotlin. Consulta Compose Compiler Gradle plug-in per della configurazione.

Prima di Kotlin 2.0, devi assicurarti di utilizzare una versione compatibile con la tua versione di Kotlin. Puoi trovare la versione di Kotlin associata a ogni versione del plug-in nella mappa di compatibilità di Compose con Kotlin e scoprire come configurarla in Compilatore Compose.

Come posso utilizzare una versione della libreria diversa da quella designata nel BOM?

Nella sezione delle dipendenze build.gradle, mantieni l'importazione del BOM completamente gestita. Nell'importazione della dipendenza della libreria, specifica la versione da sostituire. Ad esempio, ecco come dichiarare le dipendenze se vuoi utilizzare una versione più recente della libreria di animazione, indipendentemente dalla versione designata nel 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")

    // ..
}

Alla moda

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'

    // ..
}

Il BOM aggiunge automaticamente tutte le librerie di Compose alla mia app?

No. Per aggiungere e utilizzare effettivamente le librerie Compose nella tua app, devi dichiarare ogni come riga di dipendenza separata nel file Gradle del modulo (a livello di app) (di solito app/build.gradle).

L'utilizzo del BOM garantisce che le versioni di qualsiasi libreria di Compose nella tua app siano ma il BOM non aggiunge le librerie Compose al tuo dell'app.

In futuro, le versioni delle librerie Compose verranno controllate in modo indipendente, il che significa i numeri di versione inizieranno a essere incrementati al proprio ritmo. Le release stabili più recenti di ogni libreria vengono testate insieme. Tuttavia, trovare le versioni stabili più recenti di ogni libreria può essere difficile e il BOM ti aiuta a utilizzare automaticamente queste versioni più recenti.

Devo utilizzare forzatamente la distinta base?

No. Puoi comunque scegliere di aggiungere manualmente ogni versione della dipendenza. Tuttavia, ti consigliamo di utilizzare il BOM perché ti consentirà di utilizzare più facilmente tutte le versioni stabili più recenti contemporaneamente.

La BOM funziona con i cataloghi delle versioni?

Sì. Puoi includere il BOM stesso nel catalogo delle versioni e omettere le altre versioni della libreria Compose:

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

Non dimenticare di importare la BOM in build.gradle del modulo:

Kotlin

dependencies {
    val composeBom = platform(libs.androidx.compose.bom)
    implementation(composeBom)
    androidTestImplementation(composeBom)

    // import Compose dependencies as usual
}

Alla moda

dependencies {
    Dependency composeBom = platform(libs.androidx.compose.bom)
    implementation composeBom
    androidTestImplementation(composeBom)

    // import Compose dependencies as usual
}

Cosa succede se voglio provare le release alpha o beta delle librerie Compose?

Esistono tre BOM di Compose disponibili. Ogni BOM è uno snapshot in un determinato momento delle versioni più recenti delle librerie Compose.

  • Stabile: contiene le versioni stabili più recenti di ogni libreria
  • Beta: contiene le versioni beta più recenti, candidate alla release (RC) o stabili di ogni libreria
  • Alpha: contiene le versioni alpha, beta, RC o stabili più recenti di ogni libreria

Le versioni alpha e beta del BOM vengono specificate aggiungendo -alpha e -beta al nome dell'artefatto BOM. La versione stabile non ha un suffisso.

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
    // ..
}

Come faccio a segnalare un problema o a fornire feedback sulla distinta base?

Puoi segnalare i problemi nel nostro Issue Tracker.