Utilizzo della distinta base

La distinta base di composizione consente di gestire tutte le versioni della libreria di Compose, specificando solo la versione della distinta. La distinta base contiene link alle versioni stabili delle diverse librerie di Compose, in modo che funzionino bene insieme. Quando utilizzi la distinta base nell'app, non è necessario aggiungere alcuna versione alle dipendenze della libreria di Compose. Quando aggiorni la versione della distinta base, tutte le librerie in uso vengono aggiornate automaticamente alle nuove versioni.

Per scoprire quali versioni della libreria di Scrivi sono mappate a una versione specifica della distinta base, consulta Mappatura delle versioni della distinta base alla libreria.

Perché la libreria del compilatore di Scrivi non è inclusa nella distinta base?

L'estensione di compilazione di Compose Kotlin (androidx.compose.compiler) non è collegata alle versioni della libreria di Compose. È invece collegato alle versioni del plug-in di compilazione di Kotlin e rilasciato con una cadenza separata dal resto di Compose, quindi assicurati di utilizzare una versione compatibile con la tua versione di Kotlin. Puoi trovare la versione di Kotlin che è mappata a ogni versione del plug-in nella pagina Compose to Kotlin Compatibility Map.

Come si utilizza una versione della libreria diversa da quella impostata in BOM?

Nella sezione delle dipendenze build.gradle, mantieni l'importazione della piattaforma BOM. Nell'importazione delle dipendenze della libreria, specifica la versione che ti interessa. Ad esempio, ecco come dichiarare le dipendenze se vuoi utilizzare una versione alpha di Material 3, indipendentemente dalla versione designata nella distinta base:

dependencies {
    // Import the Compose BOM
    implementation platform('androidx.compose:compose-bom:2024.04.01')

    // Import Material Design 3 library
    implementation 'androidx.compose.material3:material3:1.1.2'

    // Import other Compose libraries without version numbers
    // ..
    implementation 'androidx.compose.foundation:foundation'
}

La distinta base aggiunge automaticamente tutte le librerie di Compose alla mia app?

No. Per aggiungere e utilizzare effettivamente le librerie di 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 assicura che le versioni di tutte le librerie di Compose nell'app siano compatibili, ma in realtà non aggiunge queste librerie di Compose all'app.

In futuro, il controllo delle versioni delle librerie di Compose verrà eseguito in modo indipendente, il che significa che i numeri di versione inizieranno ad essere incrementati al proprio ritmo. Le release stabili più recenti di ogni libreria vengono testate e garantito per funzionare perfettamente insieme. Tuttavia, trovare le versioni stabili più recenti di ogni libreria può essere difficile e la distinta base ti aiuta a utilizzare automaticamente le versioni più recenti.

Sono obbligato a utilizzare la distinta base?

No. Puoi comunque scegliere di aggiungere manualmente ogni versione delle dipendenze. Tuttavia, ti consigliamo di utilizzare la distinta base, in quanto semplifica l'utilizzo contemporaneo di tutte le versioni stabili più recenti.

La distinta base funziona con i cataloghi delle versioni?

Sì. Puoi includere la distinta base stessa nel catalogo delle versioni e omettere le altre versioni della libreria di Scrivi:

[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 base nel build.gradle del modulo:

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

    // import Compose dependencies as usual
}

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

Puoi segnalare i problemi su Issue Tracker.