Utiliser une 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.

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

Groovy

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

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.

À partir de Kotlin 2.0, le compilateur d'applications Compose est géré en même temps que et utilise la même version que le compilateur Kotlin. Pour en savoir plus sur la configuration, consultez Plugin Gradle du compilateur Compose.

Avant Kotlin 2.0, vous devez vous assurer d'utiliser une version compatible à 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, et comment la configurer sur le compilateur Compose.

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 de remplacement. Par exemple, voici comment déclarer des dépendances si vous souhaitez utiliser une version plus récente de la bibliothèque d'animation, quelle que soit la version désignée dans la nomenclature :

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

    // ..
}

Groovy

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'

    // ..
}

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 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. Cependant, nous nous vous recommandons d'utiliser la nomenclature, car elle vous permettra d'utiliser plus facilement stables en même temps.

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 fichier build.gradle de votre module:

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
}

Que faire si je souhaite tester les versions alpha ou bêta des bibliothèques Compose ?

Trois nomenclatures Compose sont disponibles. Chaque nomenclature est un instantané à un moment précis des dernières versions disponibles des bibliothèques Compose.

  • Stable : contient les dernières versions stables de chaque bibliothèque.
  • Bêta : contient la dernière version bêta, la version finale (RC) ou la version stable de chaque bibliothèque
  • Alpha : contient les dernières versions alpha, bêta, RC ou stables de chaque bibliothèque.

Pour spécifier les versions alpha et bêta de la nomenclature, ajoutez -alpha et -beta au nom de l'artefact de nomenclature. La version stable n'a pas de suffixe.

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

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

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