הכלי Compose Bill of Materials (BOM) מאפשר לכם לנהל את כל הגרסאות של ספריית 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.01") 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.01') 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 Compiler ל-Compose (androidx.compose.compiler) לא מקושר לגרסאות של ספריית Compose. במקום זאת, הוא מקושר לגרסאות של התוסף Kotlin compiler ומופץ בקצב שונה משאר חלקי Compose.
החל מ-Kotlin 2.0, Compose appcompiler מנוהל לצד Kotlin compiler ומשתמש באותה גרסה כמו Kotlin compiler. פרטים על ההגדרה מופיעים במאמר Compose Compiler Gradle plugin.
בגרסאות שקודמות ל-Kotlin 2.0, כדאי לעיין במפת התאימות של Compose ל-Kotlin כדי לזהות גרסת קומפיילר שתואמת לגרסת Kotlin שלכם, ולקרוא את המאמר Compose Compiler כדי לקבל הנחיות להגדרת הקומפיילר.
איך משתמשים בגרסה אחרת של ספרייה מזו שמוגדרת ב-BOM?
בקטע build.gradle dependencies, משאירים את הייבוא של BOM
platform. בייבוא של יחסי התלות של הספרייה, מציינים את הגרסה שרוצים להשתמש בה במקום הגרסה שמוגדרת כברירת מחדל. לדוגמה, כך מצהירים על תלות אם רוצים להשתמש בגרסה חדשה יותר של ספריית האנימציה, לא משנה איזו גרסה מוגדרת ב-BOM:
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2025.10.01") 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.01") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.10.0-alpha04' // .. }
האם BOM מוסיף באופן אוטומטי את כל ספריות Compose לאפליקציה שלי?
לא. כדי להוסיף ספריות Compose לאפליקציה ולהשתמש בהן, צריך להצהיר על כל ספרייה כשורה נפרדת של תלות בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל מדובר בקובץ app/build.gradle).
שימוש ב-BOM עוזר לוודא שהגרסאות של כל ספריות Compose באפליקציה תואמות, אבל ה-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?
יש שלוש רשימות חומרים זמינות של Compose. כל BOM הוא תמונת מצב של הגרסאות העדכניות ביותר של ספריות Compose שזמינות באותו רגע.
- יציבה – מכילה את הגרסאות היציבות העדכניות של כל ספרייה.
- בטא – מכילה את הגרסאות האחרונות של בטא, מועמדות להפצה (RC) או יציבות של כל ספרייה.
- אלפא – מכילה את הגרסאות העדכניות ביותר של אלפא, בטא, RC או גרסאות יציבות של כל ספרייה.
גרסאות אלפא ובטא של ה-BOM מצוינות על ידי הוספת -alpha ו--beta לשם ה-Artifact של ה-BOM. לגרסה היציבה אין סיומת.
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2025.10.01") // or platform("androidx.compose:compose-bom-beta:2025.10.01") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2025.10.01') // or platform('androidx.compose:compose-bom-beta:2025.10.01') implementation composeBom // .. }
איך מדווחים על בעיה או שולחים משוב על ה-BOM?
אפשר לדווח על בעיות בכלי למעקב אחר בעיות.
מומלץ בשבילך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- Material Design 3 ב-Compose
- ConstraintLayout ב-Compose
- משאבים ב-Compose