Bill of Materials (BOM) ของ Compose ช่วยให้คุณจัดการไลบรารี 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:2026.05.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:2026.05.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 2.0 เป็นต้นไป ระบบจะจัดการคอมไพเลอร์ Compose ควบคู่ไปกับคอมไพเลอร์ Kotlin และใช้เวอร์ชันเดียวกับคอมไพเลอร์ Kotlin ดูรายละเอียดการกำหนดค่าได้ที่ ปลั๊กอิน Compose Compiler Gradle สำหรับ
ในเวอร์ชันที่ต่ำกว่า Kotlin 2.0 ให้ดูแผนผังความเข้ากันได้ของ Compose กับ Kotlin เพื่อระบุเวอร์ชันคอมไพเลอร์ที่เข้ากันได้ กับ Kotlin เวอร์ชันของคุณ และดูคอมไพเลอร์ Composeสำหรับ คำแนะนำเกี่ยวกับการกำหนดค่า
ฉันจะใช้ไลบรารีเวอร์ชันอื่นที่ไม่ใช่เวอร์ชันที่กำหนดไว้ใน BOM ได้อย่างไร
ในส่วนทรัพยากร Dependency ของ build.gradle ให้คงการนำเข้าแพลตฟอร์ม BOM ไว้ และระบุเวอร์ชันที่ต้องการแทนที่ในการนำเข้าทรัพยากร Dependency ของไลบรารี ตัวอย่างเช่น วิธีประกาศทรัพยากร Dependency หากต้องการใช้ไลบรารีภาพเคลื่อนไหวเวอร์ชันใหม่กว่า ไม่ว่าเวอร์ชันใดจะกำหนดไว้ใน BOM ก็ตาม
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2026.05.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.11.0-beta01") // .. }
ดึงดูด
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2026.05.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.11.0-beta01' // .. }
BOM จะเพิ่มไลบรารี Compose ทั้งหมดลงในแอปของฉันโดยอัตโนมัติไหม
ไม่ หากต้องการเพิ่มและใช้ไลบรารี Compose ในแอป คุณต้องประกาศไลบรารีแต่ละรายการเป็นบรรทัดทรัพยากร Dependency แยกต่างหากในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยมากจะเป็นไฟล์ app/build.gradle)
การใช้ BOM จะช่วยยืนยันว่าไลบรารี Compose เวอร์ชันต่างๆ ในแอปเข้ากันได้ แต่ BOM จะไม่เพิ่มไลบรารี Compose เหล่านั้นลงในแอป
เหตุใด BOM จึงเป็นวิธีที่แนะนำในการจัดการไลบรารี Compose เวอร์ชันต่างๆ
ในอนาคต ไลบรารี Compose จะมีเวอร์ชันแยกกัน ซึ่งหมายความว่าหมายเลขเวอร์ชันจะเริ่มเพิ่มขึ้นตามจังหวะของแต่ละไลบรารี โดยระบบจะทดสอบรุ่นเสถียรล่าสุดของแต่ละไลบรารีร่วมกัน อย่างไรก็ตาม การค้นหาเวอร์ชันเสถียรล่าสุดของแต่ละไลบรารีอาจเป็นเรื่องยาก และ BOM จะช่วยให้คุณใช้เวอร์ชันล่าสุดเหล่านี้ได้โดยอัตโนมัติ
ฉันต้องใช้ BOM ไหม
ไม่ คุณยังเลือกเพิ่มทรัพยากร Dependency แต่ละเวอร์ชันด้วยตนเองได้ อย่างไรก็ตาม เราขอแนะนำให้ใช้ 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" }
อย่าลืมนำเข้า 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 }
ฉันควรทำอย่างไรหากต้องการลองใช้ไลบรารี Compose เวอร์ชันอัลฟ่าหรือเบต้า
มี BOM ของ Compose ให้เลือกใช้ 3 รายการ โดย BOM แต่ละรายการจะเป็นสแนปช็อต ณ จุดใดจุดหนึ่งของไลบรารี Compose เวอร์ชันล่าสุดที่พร้อมใช้งาน
- เสถียร - มีไลบรารีแต่ละรายการเวอร์ชันเสถียรล่าสุด
- เบต้า - มีไลบรารีแต่ละรายการเวอร์ชันเบต้า, เวอร์ชันรุ่นที่อาจได้รับการเผยแพร่ (RC) หรือเวอร์ชันเสถียรล่าสุด
- อัลฟ่า - มีไลบรารีแต่ละรายการเวอร์ชันอัลฟ่า, เบต้า, RC หรือเวอร์ชันเสถียรล่าสุด
คุณระบุ BOM เวอร์ชันอัลฟ่าและเบต้าได้โดยเพิ่ม -alpha และ -beta ลงในชื่ออาร์ติแฟกต์ BOM ส่วนเวอร์ชันเสถียรจะไม่มีคำต่อท้าย
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2026.05.00") // or platform("androidx.compose:compose-bom-beta:2026.05.00") implementation(composeBom) // .. }
ดึงดูด
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2026.05.00') // or platform('androidx.compose:compose-bom-beta:2026.05.00') implementation composeBom // .. }
ฉันจะรายงานปัญหาหรือแสดงความคิดเห็นเกี่ยวกับ BOM ได้อย่างไร
คุณสามารถยื่นเรื่องในเครื่องมือติดตามปัญหาของเรา
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- Material Design 3 ใน Compose
- ConstraintLayout ใน Compose
- ทรัพยากรใน Compose