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.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 đó, 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 một 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 của trình bổ trợ tại Bản đồ khả năng tương thích Compose to Kotlin và cách định cấu hình phiên bản này 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. 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, bạn có thể gặp khó khăn khi tìm các phiên bản ổn định mới nhất của mỗi thư viện. BOM sẽ giúp bạn tự động sử dụng các phiên bản mới nhất này.
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 sử dụng BOM để có thể sử dụng đồng thời tất cả phiên bản ổn định mới nhất một 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 hiện có. 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
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