Materialliste verwenden

Mit der Compose-BOM (Bill of Materials) können Sie alle Versionen Ihrer 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 App verwenden, müssen Sie den Compose-Bibliotheksabhängigkeiten keine Version hinzufügen. Wenn Sie die BOM-Version aktualisieren, werden alle 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.10.01")
    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.10.01')
    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 in einem anderen Rhythmus als der Rest von Compose veröffentlicht.

Seit Kotlin 2.0 wird der Compose-App-Compiler zusammen mit dem Kotlin-Compiler verwaltet und verwendet dieselbe Version wie der Kotlin-Compiler. Konfigurationsdetails 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 der jeweiligen Version des Plug-ins zugeordnet ist, finden Sie unter Compose to Kotlin Compatibility Map. Informationen zur Konfiguration finden Sie unter Compose Compiler.

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 Bibliothekabhä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.10.01")
    implementation(composeBom)

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

    // ..
}

Groovy

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

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.8.0-alpha05'

    // ..
}

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

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

Mit der BOM wird sichergestellt, dass die Versionen aller Compose-Bibliotheken in Ihrer App kompatibel sind. Die Compose-Bibliotheken werden Ihrer App jedoch nicht über die BOM hinzugefügt.

Künftig werden Compose-Bibliotheken unabhängig voneinander versioniert. Das bedeutet, dass die Versionsnummern in ihrem eigenen Tempo erhöht werden. Die neuesten stabilen Releases der einzelnen Bibliotheken werden gemeinsam getestet. Es kann jedoch schwierig sein, die neuesten stabilen Versionen der einzelnen Bibliotheken zu finden. Mit dem BOM können Sie diese neuesten Versionen automatisch verwenden.

Muss ich die Stückliste verwenden?

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

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
}

Groovy

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

    // import Compose dependencies as usual
}

Was ist, wenn ich Alpha- oder Betaversionen von 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 der einzelnen Bibliotheken.

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.10.01")
    //            or platform("androidx.compose:compose-bom-beta:2024.10.01")
    implementation(composeBom)
    // ..
}

Groovy

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

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

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