Utiliser la nomenclature

La nomenclature de Compose vous permet de gérer toutes les versions de votre bibliothèque Compose en ne spécifiant que la version de la nomenclature. La nomenclature elle-même contient des liens vers les versions stables des différentes bibliothèques Compose, de manière à ce qu'elles fonctionnent correctement ensemble. Lorsque vous utilisez la nomenclature dans votre application, vous n'avez pas besoin d'ajouter de versions aux dépendances des bibliothèques Compose elles-mêmes. Lorsque vous mettez à jour la version de la nomenclature, toutes les bibliothèques que vous utilisez sont automatiquement mises à jour vers leur nouvelle version.

Pour savoir quelle version d'une bibliothèque Compose correspond à quelle version de la nomenclature, consultez la section Correspondance entre les versions de la nomenclature et des bibliothèques.

Pourquoi la bibliothèque de compilateur Compose n'est-elle pas incluse dans la nomenclature ?

L'extension du compilateur Kotlin Compose (androidx.compose.compiler) n'est pas associée aux versions des bibliothèques Compose. Au lieu de cela, elle est associée aux versions du plug-in du compilateur Kotlin et publiée à une fréquence différente des autres éléments de Compose. Veillez donc à utiliser une version compatible avec votre version de Kotlin. Vous trouverez la version de Kotlin qui correspond à chaque version du plug-in sur la carte de compatibilité entre Compose et Kotlin.

Comment utiliser une version de bibliothèque différente de celle désignée dans la nomenclature ?

Dans la section des dépendances build.gradle, conservez l'importation de la plate-forme de nomenclature. Sur l'importation des dépendances de bibliothèque, spécifiez la version souhaitée. Par exemple, voici comment déclarer des dépendances pour utiliser une version alpha de Material 3 quelle que soit la version désignée dans la nomenclature :

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 nomenclature ajoute-t-elle automatiquement toutes les bibliothèques Compose à mon application ?

Non. Pour ajouter et utiliser des bibliothèques Compose dans votre application, vous devez déclarer chaque bibliothèque en tant que ligne de dépendance distincte dans le fichier Gradle de votre module (au niveau de l'application ; généralement app/build.gradle).

Utiliser la nomenclature garantit la compatibilité de toutes les bibliothèques Compose de votre application. Cependant, la nomenclature n'ajoute pas ces bibliothèques Compose à votre application.

À l'avenir, les versions des bibliothèques Compose seront gérées indépendamment les unes des autres. Cela qui signifie que les numéros de version commenceront à être incrémentés à leur propre rythme. Les dernières versions stables de chaque bibliothèque sont testées et garanties pour fonctionner correctement ensemble. Toutefois, il peut être difficile de trouver la dernière version stable de chaque bibliothèque. La nomenclature vous aide à utiliser automatiquement cette dernière version.

Suis-je obligé d'utiliser la nomenclature ?

Non. Vous pouvez toujours choisir d'ajouter manuellement chaque version de dépendance. Nous vous recommandons cependant d'utiliser la nomenclature, car il sera ainsi plus facile d'utiliser en même temps toutes les dernières versions stables.

La nomenclature fonctionne-t-elle avec les catalogues de versions ?

Oui. Vous pouvez inclure la nomenclature elle-même dans le catalogue de versions et omettre les autres versions des bibliothèques Compose :

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

N'oubliez pas d'importer la nomenclature dans le build.gradle de votre module :

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

    // import Compose dependencies as usual
}

Comment signaler un problème avec la nomenclature ou envoyer des commentaires à son sujet ?

Vous pouvez signaler les problèmes dans notre Issue Tracker.