ใช้ Bill of Materials

รายการวัสดุ (BOM) ของ Compose ช่วยให้คุณจัดการเวอร์ชันไลบรารี Compose ทั้งหมดได้โดยระบุเฉพาะเวอร์ชันของ BOM BOM เองก็มีลิงก์ไปยัง เวอร์ชันที่เสถียรของไลบรารี Compose ต่างๆ ในลักษณะที่ทำงานร่วมกันได้ เป็นอย่างดี เมื่อใช้ BOM ในแอป คุณไม่จำเป็นต้องเพิ่ม เวอร์ชันลงในการอ้างอิงไลบรารี Compose เมื่ออัปเดต BOM เวอร์ชัน ระบบจะอัปเดตไลบรารีทั้งหมดที่คุณใช้เป็นเวอร์ชันใหม่โดยอัตโนมัติ

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2025.10.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")
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom:2025.10.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 Compiler ใน BOM

ส่วนขยายคอมไพเลอร์ Kotlin ของ Compose (androidx.compose.compiler) ไม่ได้ลิงก์ กับเวอร์ชันไลบรารี Compose แต่จะลิงก์กับปลั๊กอินคอมไพเลอร์ Kotlin และเผยแพร่แยกต่างหากจาก Compose ที่เหลือ

ตั้งแต่ Kotlin 2.0 เป็นต้นไป ระบบจะจัดการ Compose appcompiler ควบคู่ไปกับ Kotlin compiler และใช้เวอร์ชันเดียวกับคอมไพเลอร์ Kotlin ดูรายละเอียดการกำหนดค่าได้ที่ปลั๊กอิน Gradle ของคอมไพเลอร์ Compose

ในเวอร์ชันที่ต่ำกว่า Kotlin 2.0 โปรดดูแผนที่ความเข้ากันได้ของ Compose กับ Kotlin เพื่อระบุเวอร์ชันคอมไพเลอร์ที่เข้ากันได้ กับเวอร์ชัน Kotlin ของคุณ และดูCompose Compiler เพื่อ ดูคำแนะนำในการกำหนดค่า

ฉันจะใช้ไลบรารีเวอร์ชันอื่นนอกเหนือจากที่ระบุไว้ใน BOM ได้อย่างไร

ในส่วนbuild.gradleการอ้างอิง ให้คงการนำเข้า BOM platform ไว้ ในการนำเข้าทรัพยากร Dependency ของไลบรารี ให้ระบุเวอร์ชันที่จะลบล้าง ตัวอย่างเช่น หากต้องการใช้ไลบรารีภาพเคลื่อนไหวเวอร์ชันใหม่กว่า ไม่ว่า BOM จะกำหนดเวอร์ชันใดไว้ คุณจะประกาศการขึ้นต่อกันได้ดังนี้

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2025.10.00")
    implementation(composeBom)

    // Override the BOM version when needed
    implementation("androidx.compose.animation:animation:1.10.0-alpha04")

    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform("androidx.compose:compose-bom:2025.10.00")
    implementation composeBom

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.10.0-alpha04'

    // ..
}

BOM จะเพิ่มไลบรารี Compose ทั้งหมดลงในแอปของฉันโดยอัตโนมัติไหม

ไม่ หากต้องการเพิ่มและใช้ไลบรารี Compose ในแอปจริง คุณต้องประกาศไลบรารีแต่ละรายการเป็นบรรทัดทรัพยากร Dependency แยกต่างหากในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle)

การใช้ BOM จะช่วยยืนยันว่าเวอร์ชันของไลบรารี Compose ในแอปของคุณเข้ากันได้ แต่ BOM จะไม่ได้เพิ่มไลบรารี Compose เหล่านั้นลงในแอปของคุณจริงๆ

นับจากนี้ไป ไลบรารี Compose จะมีการกำหนดเวอร์ชันแยกกัน ซึ่งหมายความว่า หมายเลขเวอร์ชันจะเริ่มเพิ่มขึ้นตามอัตราของแต่ละไลบรารี ระบบจะทดสอบไลบรารีแต่ละรายการในรุ่นล่าสุด ที่เสถียรร่วมกัน อย่างไรก็ตาม การค้นหา เวอร์ชันเสถียรล่าสุดของแต่ละไลบรารีอาจเป็นเรื่องยาก และ BOM จะช่วยให้คุณ ใช้เวอร์ชันล่าสุดเหล่านี้ได้โดยอัตโนมัติ

ฉันต้องใช้ BOM ไหม

ไม่ คุณยังคงเลือกเพิ่มเวอร์ชันการขึ้นต่อกันแต่ละรายการด้วยตนเองได้ อย่างไรก็ตาม เราขอแนะนำให้ใช้ 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
}

Groovy

dependencies {
    Dependency composeBom = platform(libs.androidx.compose.bom)
    implementation composeBom
    androidTestImplementation(composeBom)

    // import Compose dependencies as usual
}

ฉันควรทำอย่างไรหากต้องการลองใช้ไลบรารี Compose เวอร์ชันอัลฟ่าหรือเบต้า

มี BOM ของ Compose 3 รายการ BOM แต่ละรายการคือสแนปชอต ณ จุดใดจุดหนึ่ง ของไลบรารี Compose เวอร์ชันล่าสุดที่พร้อมใช้งาน

  • เสถียร - มีไลบรารีแต่ละรายการในเวอร์ชันเสถียรล่าสุด
  • เบต้า - มีเวอร์ชันเบต้าล่าสุด, รุ่นที่พร้อมเผยแพร่ (RC) หรือเวอร์ชันเสถียรของ แต่ละไลบรารี
  • Alpha - มีไลบรารีแต่ละรายการในเวอร์ชันอัลฟ่า เบต้า RC หรือเวอร์ชันเสถียรล่าสุด

เวอร์ชันอัลฟ่าและเบต้าของ BOM จะระบุโดยการเพิ่ม -alpha และ -beta ลงในชื่ออาร์ติแฟกต์ BOM เวอร์ชันเสถียรจะไม่มีคำต่อท้าย

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom-alpha:2025.10.00")
    //            or platform("androidx.compose:compose-bom-beta:2025.10.00")
    implementation(composeBom)
    // ..
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2025.10.00')
    //                   or platform('androidx.compose:compose-bom-beta:2025.10.00')
    implementation composeBom
    // ..
}

ฉันจะรายงานปัญหาหรือแสดงความคิดเห็นเกี่ยวกับ BOM ได้อย่างไร

คุณสามารถรายงานปัญหาในเครื่องมือติดตามปัญหาของเรา