การใช้ Bill of Materials

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 เหล่านั้นลงใน แอป

นับจากนี้ไป ไลบรารี 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 ได้อย่างไร

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