Sử dụng Bảng kê khai thành phần

Bảng kê khai thành phần (BOM) của Compose cho phép bạn quản lý mọi phiên bản thư viện Compose mà chỉ cần chỉ định phiên bản của Bảng kê khai thành phần. Bảng kê khai thành phần vốn đã có các đường liên kết đến các phiên bản ổn định của các thư viện Compose, theo cách tương thích với nhau. Khi sử dụng Bảng kê khai thành phần trong ứng dụng, bạn không cần thêm phiên bản nào vào chính các phần phụ thuộc của thư viện Compose. Khi bạn cập nhật phiên bản Bảng kê khai thành phần, tất cả các thư viện mà bạn đang sử dụng sẽ tự động được cập nhật lên phiên bản mới.

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

Để tìm hiểu xem những phiên bản thư viện Compose nào được ánh xạ đến một phiên bản cụ thể của Bảng kê khai thành phần, hãy xem bài viết Ánh xạ Bảng kê khai thành phần với phiên bản thư viện.

Tại sao thư viện của Trình biên dịch trong Compose không thuộc Bảng kê khai thành phần?

Tiện ích trình biên dịch Kotlin của Compose (androidx.compose.compiler) không được liên kết với các phiên bản thư viện Compose. Thay vào đó, tiện ích này được liên kết với các phiên bản của trình bổ trợ Kotlin cho trình biên dịch và được phát hành theo tần suất riêng biệt so với các thành phần còn lại của Compose.

Kể từ Kotlin 2.0, trình biên dịch ứng dụng Compose được quản lý cùng với trình biên dịch Kotlin và sử dụng cùng phiên bản với trình biên dịch Kotlin. Hãy xem Trình bổ trợ Gradle cho Trình biên dịch Compose để biết thông tin chi tiết về cấu hình.

Trước Kotlin 2.0, bạn cần đảm bảo sử dụng một phiên bản tương thích với phiên bản Kotlin của mình. Bạn có thể tìm thấy phiên bản Kotlin ánh xạ đến từng phiên bản trình bổ trợ tại Bản đồ về khả năng tương thích khi chuyển từ Compose sang Kotlin và cách định cấu hình phiên bản đó tại Trình biên dịch Compose.

Làm thế nào để sử dụng một phiên bản thư viện khác với phiên bản được chỉ định trong Bảng kê khai thành phần?

Trong mục phần phụ thuộc build.gradle, hãy tiếp tục nhập nền tảng Bảng kê khai thành phần. Khi nhập phần phụ thuộc của thư viện, hãy chỉ định phiên bản ghi đè. Ví dụ: dưới đây là cách khai báo các phần phụ thuộc nếu bạn muốn sử dụng phiên bản mới hơn của thư viện ảnh động, bất kể phiên bản nào được chỉ định trong BOM:

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'

    // ..
}

Bảng kê khai thành phần có tự động thêm tất cả các thư viện Compose vào ứng dụng của tôi không?

Không. Để thực sự thêm và sử dụng thư viện Compose trong ứng dụng, bạn phải khai báo từng thư viện ở dạng một dòng phần phụ thuộc riêng trong tệp Gradle mô-đun (cấp ứng dụng) (thường là app/build.gradle).

Việc sử dụng Bảng kê khai thành phần sẽ đảm bảo rằng các phiên bản của mọi thư viện Compose trong ứng dụng của bạn đều tương thích, nhưng Bảng kê khai thành phần không thực sự thêm những thư viện Compose đó vào ứng dụng của bạn.

Về sau, các thư viện Compose sẽ được tạo phiên bản một cách độc lập, tức là số phiên bản sẽ bắt đầu tăng lên theo tiến độ riêng. Các bản phát hành ổn định mới nhất của mỗi thư viện sẽ được kiểm thử cùng nhau. Tuy nhiên, không dễ gì tìm được phiên bản ổn định mới nhất của mỗi thư viện nên BOM sẽ tự động dùng những phiên bản mới nhất này cho bạn.

Tôi có nhất thiết phải sử dụng Bảng kê khai thành phần không?

Không. Bạn vẫn có thể chọn thêm thủ công từng phiên bản phần phụ thuộc. Tuy nhiên, bạn nên dùng BOM để có thể cùng lúc sử dụng mọi phiên bản ổn định mới nhất theo cách dễ dàng hơn.

Bảng kê khai thành phần có hoạt động với danh mục phiên bản không?

Có. Bạn có thể đưa Bảng kê khai thành phần vào danh mục phiên bản và bỏ qua các phiên bản thư viện Compose khác:

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

Đừng quên nhập Bảng kê khai thành phần vào build.gradle của mô-đun:

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
}

Nếu tôi muốn dùng thử các bản phát hành alpha hoặc beta của thư viện Compose thì sao?

Có 3 BOM Compose. Mỗi BOM là một bản tổng quan nhanh tại một thời điểm về các phiên bản mới nhất hiện có của thư viện Compose.

  • Ổn định – chứa các phiên bản ổn định mới nhất của từng thư viện
  • Beta – chứa phiên bản beta, bản phát hành dùng thử (RC) hoặc phiên bản ổn định mới nhất của từng thư viện
  • Alpha – chứa các phiên bản alpha, beta, RC hoặc ổn định mới nhất của từng thư viện

Phiên bản Alpha và Beta của BOM được chỉ định bằng cách thêm -alpha-beta vào tên cấu phần phần mềm BOM. Phiên bản ổn định không có hậu tố.

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

Làm thế nào để báo cáo vấn đề hoặc đưa ra ý kiến phản hồi về Bảng kê khai thành phần?

Bạn có thể gửi vấn đề qua công cụ theo dõi lỗi của chúng tôi.