Utilizzare una distinta materiali

La composizione della distinta materiali (BOM) 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 la BOM nella tua app, non devi aggiungere alcuna versione alle dipendenze della libreria Compose. Quando aggiorni la versione della BOM, tutte le librerie che utilizzi vengono aggiornate automaticamente alle nuove versioni.

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2025.10.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:2025.10.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'
}

Per scoprire quali versioni della libreria Compose sono mappate a una specifica versione della distinta base, consulta la mappatura dalla distinta base alla versione della libreria.

Perché la libreria Compose Compiler non è inclusa nella 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 rilasciato con una cadenza separata dal resto di Compose.

A partire da Kotlin 2.0, il compilatore di app Compose viene gestito insieme al compilatore Kotlin e utilizza la stessa versione del compilatore Kotlin. Per i dettagli di configurazione, consulta Plug-in Gradle di Compose Compiler.

Nelle versioni precedenti a Kotlin 2.0, consulta la mappa di compatibilità tra Compose e Kotlin per identificare una versione del compilatore compatibile con la tua versione di Kotlin e consulta Compilatore Compose per indicazioni sulla configurazione.

Come faccio a utilizzare una versione della libreria diversa da quella indicata nella distinta materiali?

Nella sezione delle dipendenze build.gradle, mantieni l'importazione della piattaforma BOM. Nell'importazione della dipendenza della libreria, specifica la versione di override. Ad esempio, ecco come dichiarare le dipendenze se vuoi utilizzare una versione più recente della libreria di animazioni, indipendentemente dalla versione designata nel BoM:

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2025.10.00")
    implementation(composeBom)

    // Override the BOM version when needed
    implementation("androidx.compose.animation:animation:1.10.0-alpha04")

    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform("androidx.compose:compose-bom:2025.10.00")
    implementation composeBom

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.10.0-alpha04'

    // ..
}

La BOM aggiunge automaticamente tutte le librerie Compose alla mia app?

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

L'utilizzo della distinta base consente di verificare che le versioni delle librerie Compose nella tua app siano compatibili, ma la distinta base non aggiunge effettivamente queste librerie alla tua app.

In futuro, le librerie Compose avranno un controllo delle versioni indipendente, il che significa che i numeri di versione inizieranno a essere incrementati in modo indipendente. Le ultime release stabili di ogni libreria vengono testate insieme. Tuttavia, trovare le ultime versioni stabili di ogni libreria può essere difficile e la distinta materiali ti aiuta a utilizzare automaticamente queste ultime versioni.

Sono obbligato a utilizzare la distinta materiali?

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

La distinta materiali funziona con i cataloghi delle versioni?

Sì. Puoi includere la distinta materiali 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 distinta materiali nel build.gradle del modulo:

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
}

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

Sono disponibili tre opzioni di creazione delle distinte materiali. Ogni distinta base è uno snapshot puntuale delle versioni più recenti disponibili delle librerie Compose.

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

Le versioni alpha e beta della distinta materiali vengono specificate aggiungendo -alpha e -beta al nome dell'artefatto della distinta materiali. La versione stabile non ha suffissi.

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom-alpha:2025.10.00")
    //            or platform("androidx.compose:compose-bom-beta:2025.10.00")
    implementation(composeBom)
    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2025.10.00')
    //                   or platform('androidx.compose:compose-bom-beta:2025.10.00')
    implementation composeBom
    // ..
}

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

Puoi segnalare i problemi nel nostro strumento Issue Tracker.