Bảng kê khai thành phần (BOM) của Compose giúp bạn quản lý tất cả thư viện Compose bằng cách chỉ định chỉ có 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.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' }
Để 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 đó, mã này được liên kết với các phiên bản của Kotlin trình biên dịch bổ sung và được phát hành theo một tần suất riêng biệt với 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 một phiên bản với trình biên dịch Kotlin. Xem trình bổ trợ Gradle của Trình biên dịch Compose để 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.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' // .. }
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.
Tại sao Bảng kê khai thành phần được đề xuất là phương thức quản lý các phiên bản thư viện Compose?
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. Mới nhất các bản phát hành ổn định của từng 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 (BOM) 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 mỗi thư viện
- Beta – chứa phiên bản beta mới nhất, bản phát hành dùng thử (RC) hoặc phiên bản ổn định của mỗi 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 mỗi thư viện
Phiên bản Alpha và Beta của BOM được chỉ định bằng cách thêm -alpha
và -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.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 // .. }
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.
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Material Design 3 trong Compose
- ConstraintLayout trong Compose
- Tài nguyên trong Compose