Compose Bill of Materials (BOM) ช่วยให้คุณจัดการไลบรารีทั้งหมดของ Compose ได้ เวอร์ชันด้วยการระบุ เฉพาะเวอร์ชันของ BOM เท่านั้น BOM เองก็มีลิงก์ไปยังเวอร์ชันเสถียรของ ไลบรารี Compose ต่างๆ ในลักษณะที่สามารถทำงานร่วมกันได้ วันและเวลา เมื่อใช้ BOM ในแอปของคุณ คุณไม่จำเป็นต้องเพิ่ม เวอร์ชันใดก็ได้ไปยังทรัพยากร Dependency ของไลบรารี Compose ด้วยตนเอง เมื่อคุณอัปเดต เวอร์ชัน BOM ไลบรารีทั้งหมดที่คุณใช้ได้รับการอัปเดตโดยอัตโนมัติ ในเวอร์ชันใหม่ๆ ได้ด้วย
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.06.00") 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") }
ดึงดูด
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom:2024.06.00') 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' }
วิธีดูว่าไลบรารี Compose เวอร์ชันใดนั้นแมปกับ BOM เวอร์ชันที่เจาะจง ดูการแมปเวอร์ชัน BOM กับไลบรารี
เหตุใดไลบรารีคอมไพเลอร์ Compose จึงไม่รวมอยู่ใน BOM
ไม่ได้ลิงก์ส่วนขยายคอมไพเลอร์ Compose Kotlin (androidx.compose.compiler) ในเวอร์ชันไลบรารี Compose แต่ลิงก์กับ Kotlin เวอร์ชันต่างๆ แทน และปล่อยปลั๊กอินคอมไพเลอร์เป็นความถี่แยกต่างหากจากโปรแกรม Compose ที่เหลือทั้งหมด ดังนั้น ตรวจสอบว่าคุณใช้เวอร์ชันที่เข้ากันได้กับ Kotlin เวอร์ชันของคุณ คุณ สามารถดูเวอร์ชัน Kotlin ที่แมปกับปลั๊กอินแต่ละเวอร์ชันได้ที่ Compose กับแผนที่ความเข้ากันได้ของ Kotlin
ฉันจะใช้ไลบรารีเวอร์ชันอื่นที่ต่างจากที่ระบุไว้ใน BOM ได้อย่างไร
ในส่วนทรัพยากร Dependency ของ build.gradle
ให้เก็บการนำเข้า BOM ไว้
ที่มีการจัดการครบวงจรได้เลย ในการนำเข้าทรัพยากร Dependency ของไลบรารี ให้ระบุเวอร์ชันที่ต้องการ สำหรับ
ตัวอย่าง วิธีประกาศ
การพึ่งพากันในกรณีที่คุณต้องการใช้ไลบรารีภาพเคลื่อนไหวเวอร์ชันใหม่กว่านี้ ไม่ต้อง
ไม่ว่าจะมีการกำหนดเวอร์ชันใดใน BOM ดังนี้
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.06.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.7.0-beta05") // .. }
ดึงดูด
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.06.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.7.0-beta05' // .. }
BOM เพิ่มไลบรารี Compose ทั้งหมดในแอปของฉันโดยอัตโนมัติแล้วใช่ไหม
ไม่ใช่ หากต้องการเพิ่มและใช้ไลบรารี Compose ในแอป คุณต้องประกาศแต่ละรายการ เป็นบรรทัดทรัพยากร Dependency แยกต่างหากในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยทั่วไปจะเป็น app/build.gradle)
การใช้ BOM จะช่วยให้แน่ใจว่าเวอร์ชันของไลบรารี Compose ในแอปของคุณ แต่ BOM ไม่ได้เพิ่มไลบรารี Compose เหล่านั้นลงใน แอป
เหตุใด BOM จึงเป็นวิธีที่แนะนำสำหรับการจัดการเวอร์ชันไลบรารีของ Compose
นับจากนี้ไป ไลบรารี Compose จะมีเวอร์ชันแยกต่างหาก ซึ่งหมายความว่า หมายเลขเวอร์ชันจะเริ่มเพิ่มตามเวลาที่สะดวก ล่าสุด รุ่นเสถียรของแต่ละไลบรารีได้รับการทดสอบและรับประกันว่าจะทำงานได้ดี อย่างไรก็ตาม การค้นหาเวอร์ชันล่าสุดที่เสถียรของไลบรารีแต่ละรายการอาจ และ BOM ก็ช่วยให้คุณใช้เวอร์ชันล่าสุดเหล่านี้ได้โดยอัตโนมัติ
ฉันถูกบังคับให้ใช้ BOM ไหม
ไม่ คุณยังคงเลือกที่จะเพิ่มเวอร์ชันทรัพยากร Dependency แต่ละเวอร์ชันด้วยตนเองได้ อย่างไรก็ตาม ขอแนะนำให้ใช้ BOM เพราะจะทำให้ใช้ BOM ที่เสถียรล่าสุดได้ง่ายขึ้น หลายเวอร์ชันในเวลาเดียวกัน
BOM ใช้กับแคตตาล็อกเวอร์ชันได้ไหม
ได้ คุณสามารถใส่ BOM เองไว้ในแคตตาล็อกเวอร์ชัน และละเว้น BOM อีกตัวได้ เขียนเวอร์ชันไลบรารี:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
อย่าลืมนำเข้า BOM ใน build.gradle
ของโมดูล
Kotlin
dependencies { val composeBom = platform(libs.androidx.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // import Compose dependencies as usual }
ดึงดูด
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
ฉันจะรายงานปัญหาหรือแสดงความคิดเห็นเกี่ยวกับ BOM ได้อย่างไร
คุณสามารถยื่นปัญหาได้ในเครื่องมือติดตามปัญหาของเรา
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- Material Design 3 ใน Compose
- ConstraintLayout ในการเขียน
- แหล่งข้อมูลใน Compose