재료명세서 사용

Compose 재료명세서(BOM)를 사용하면 BOM 버전만 지정하여 모든 Compose 라이브러리 버전을 관리할 수 있습니다. BOM 자체에는 서로 잘 작동하는 방식으로 정리된 다양한 Compose 라이브러리의 안정화 버전에 대한 링크가 있습니다. 앱에서 BOM을 사용할 때는 Compose 라이브러리 종속 항목 자체에 버전을 추가할 필요가 없습니다. BOM 버전을 업데이트하면 사용 중인 모든 라이브러리가 새 버전으로 자동 업데이트됩니다.

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

특정 BOM 버전에 매핑되는 Compose 라이브러리 버전을 알아보려면 BOM과 라이브러리 버전 매핑을 확인하세요.

Compose 컴파일러 라이브러리가 BOM에 포함되지 않는 이유는 무엇인가요?

Compose Kotlin 컴파일러 확장자(androidx.compose.compiler)는 Compose 라이브러리 버전에 연결되지 않습니다. 대신 Kotlin 컴파일러 플러그인 버전에 연결되며 Compose의 나머지 부분과 별도의 주기로 출시됩니다.

Kotlin 2.0부터 Compose 앱 컴파일러는 Kotlin 컴파일러와 함께 관리되며 Kotlin 컴파일러와 동일한 버전을 사용합니다. 구성 세부정보는 Compose Compiler Gradle 플러그인을 참고하세요.

Kotlin 2.0 이전에는 사용 중인 Kotlin 버전과 호환되는 버전을 사용해야 합니다. 각 버전의 플러그인에 매핑되는 Kotlin 버전은 Compose와 Kotlin 호환성 맵에서 확인할 수 있으며 구성 방법은 Compose 컴파일러에서 확인할 수 있습니다.

BOM에 지정된 것과 다른 라이브러리 버전을 사용하려면 어떻게 해야 하나요?

build.gradle 종속 항목 섹션에서 BOM 플랫폼 가져오기를 유지합니다. 라이브러리 종속 항목 가져오기에서 재정의 버전을 지정합니다. 예를 들어 다음은 BOM에 지정된 버전과 관계없이 최신 버전의 애니메이션 라이브러리를 사용하려는 경우 종속 항목을 선언하는 방법입니다.

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'

    // ..
}

BOM이 모든 Compose 라이브러리를 앱에 자동으로 추가하나요?

아니요. 실제로 Compose 라이브러리를 앱에 추가하고 사용하려면 모듈(앱 수준) Gradle 파일(일반적으로 app/build.gradle)에서 각 라이브러리를 별도의 종속 항목 줄로 선언해야 합니다.

BOM을 사용하면 앱의 모든 Compose 라이브러리 버전이 호환되지만 BOM은 이러한 Compose 라이브러리를 실제로 앱에 추가하지는 않습니다.

앞으로 Compose 라이브러리는 독립적으로 버전이 지정되므로 버전 번호가 자체 속도로 커지기 시작합니다. 각 라이브러리의 최신 안정화 버전은 함께 테스트됩니다. 그러나 각 라이브러리의 최신 안정화 버전은 찾기가 어려울 수 있으며 BOM을 사용하면 이러한 최신 버전을 자동으로 사용할 수 있습니다.

BOM을 무조건 사용해야 하나요?

아니요. 각 종속 항목 버전을 수동으로 추가해도 됩니다. 하지만 BOM을 사용하는 것이 좋습니다. 보다 쉽게 모든 최신 안정화 버전을 동시에 사용할 수 있기 때문입니다.

BOM은 버전 카탈로그와 함께 작동하나요?

예. 버전 카탈로그에 BOM 자체를 포함하고 다른 Compose 라이브러리 버전을 생략할 수 있습니다.

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

모듈의 build.gradle에서 BOM을 가져와야 합니다.

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
}

Compose 라이브러리의 알파 또는 베타 버전을 사용해 보려면 어떻게 해야 하나요?

사용 가능한 Compose BOM은 세 가지입니다. 각 BOM은 사용할 수 있는 최신 버전의 Compose 라이브러리의 특정 시점 스냅샷입니다.

  • 안정화 버전 - 각 라이브러리의 최신 안정화 버전 포함
  • 베타 - 각 라이브러리의 최신 베타, 출시 후보(RC) 또는 안정화 버전이 포함되어 있습니다.
  • 알파 - 각 라이브러리의 최신 알파, 베타, RC 또는 안정화 버전이 포함됨

BOM의 알파 및 베타 버전은 BOM 아티팩트 이름에 -alpha-beta을 추가하여 지정합니다. 공개 버전에는 접미사가 없습니다.

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

BOM 관련 문제를 신고하거나 의견을 보내려면 어떻게 해야 하나요?

Issue Tracker에서 문제를 신고할 수 있습니다.