Materialliste verwenden

Mit der Compose Bill of Materials (BOM) können Sie alle Versionen der Compose-Bibliothek verwalten, indem Sie nur die Version der BOM angeben. Die BOM selbst enthält Links zu den stabilen Versionen der verschiedenen Compose-Bibliotheken, sodass sie gut zusammenarbeiten. Wenn Sie die BOM in Ihrer Anwendung verwenden, müssen Sie den Abhängigkeiten der Compose-Bibliothek selbst keine Version hinzufügen. Wenn Sie die BOM-Version aktualisieren, werden alle von Ihnen verwendeten Bibliotheken automatisch auf die neuen Versionen aktualisiert.

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

Informationen dazu, welche Compose-Bibliotheksversionen einer bestimmten BOM-Version zugeordnet sind, finden Sie in der Zuordnung von BOM-Versionen zu Bibliotheksversionen.

Warum ist die Compose Compiler-Bibliothek nicht in der BOM enthalten?

Die Compose-Kotlin-Compilererweiterung (androidx.compose.compiler) ist nicht mit den Compose-Bibliotheksversionen verknüpft. Stattdessen ist es mit Versionen des Kotlin-Compiler-Plug-ins verknüpft und wird in einem anderen Rhythmus als der Rest von Compose veröffentlicht.

Ab Kotlin 2.0 wird der Compose-App-Compiler zusammen mit dem Kotlin-Compiler verwaltet und verwendet dieselbe Version wie der Kotlin-Compiler. Weitere Informationen zur Konfiguration finden Sie unter Compose Compiler Gradle-Plug-in.

Vor Kotlin 2.0 müssen Sie eine Version verwenden, die mit Ihrer Kotlin-Version kompatibel ist. Die Kotlin-Version, die den einzelnen Versionen des Plug-ins zugeordnet ist, finden Sie unter Compose to Kotlin Compatibility Map (Kompatibilitätskarte mit Kotlin erstellen). Informationen zur Konfiguration finden Sie unter Composer Compiler erstellen.

Wie verwende ich eine andere Bibliotheksversion als in der BOM angegeben?

Behalten Sie im Abschnitt build.gradle-Abhängigkeiten den Import der BOM-Plattform bei. Geben Sie beim Import der Bibliotheksabhängigkeit die überschreibende Version an. So deklarieren Sie beispielsweise Abhängigkeiten, wenn Sie eine neuere Version der Animationsbibliothek verwenden möchten, unabhängig davon, welche Version in der BOM angegeben ist:

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

    // ..
}

Cool

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'

    // ..
}

Werden meiner App durch die BOM automatisch alle Compose-Bibliotheken hinzugefügt?

Nein. Wenn Sie Compose-Bibliotheken in Ihrer App hinzufügen und verwenden möchten, müssen Sie jede Bibliothek in der Gradle-Datei Ihres Moduls (auf App-Ebene) als separate Abhängigkeitszeile deklarieren (in der Regel „app/build.gradle“).

Durch die Verwendung der BOM wird sichergestellt, dass die Versionen aller Erstellungsbibliotheken in Ihrer Anwendung kompatibel sind. Die BOM fügt diese Erstellungsbibliotheken jedoch nicht Ihrer Anwendung hinzu.

Künftig werden Compose-Bibliotheken unabhängig versioniert, d. h., die Versionsnummern werden in ihrem eigenen Tempo erhöht. Die neuesten stabilen Releases jeder Bibliothek werden gemeinsam getestet. Es kann jedoch schwierig sein, die neuesten stabilen Versionen jeder Bibliothek zu finden, und die BOM hilft Ihnen, diese neuesten Versionen automatisch zu verwenden.

Muss ich die Stückliste verwenden?

Nein. Sie können weiterhin jede Abhängigkeitsversion manuell hinzufügen. Wir empfehlen jedoch die Verwendung der BOM, da es so einfacher ist, alle aktuellen stabilen Versionen gleichzeitig zu verwenden.

Funktioniert die Stückliste mit Versionskatalogen?

Ja. Sie können die BOM selbst in den Versionskatalog aufnehmen und die anderen Compose-Bibliotheksversionen auslassen:

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

Denken Sie daran, die BOM in das build.gradle Ihres Moduls zu importieren:

Kotlin

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

    // import Compose dependencies as usual
}

Cool

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

    // import Compose dependencies as usual
}

Wie gehe ich vor, wenn ich die Alpha- oder Betaversion der Compose-Bibliotheken ausprobieren möchte?

Es gibt drei Compose-BOMs. Jede Stückliste ist ein Snapshot der jeweils neuesten verfügbaren Versionen der Compose-Bibliotheken.

  • Stabil: Enthält die neuesten stabilen Versionen der einzelnen Bibliotheken.
  • Beta: Enthält die neuesten Beta-, Release-Kandidaten- oder stabilen Versionen der einzelnen Bibliotheken.
  • Alpha: enthält die neuesten Alpha-, Beta-, RC- oder stabilen Versionen jeder Bibliothek

Die Alpha- und Betaversionen der BOM werden angegeben, indem dem Namen des BOM-Artefakts -alpha und -beta hinzugefügt werden. Die stabile Version hat kein Suffix.

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

Cool

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

Wie kann ich ein Problem melden oder Feedback zur Stückliste geben?

Probleme können Sie über unseren Issue Tracker melden.