בעזרת קובץ ה-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:2026.09.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.09.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?
תוסף המהדר של Compose Kotlin (androidx.compose.compiler) לא מקושר לגרסאות של ספריית Compose. במקום זאת, הוא מקושר לגרסאות של הפלאגין של המהדר של Kotlin ומתפרסם בקצב נפרד משאר Compose.
החל מגרסה 2.0 של Kotlin, המהדר של Compose מנוהל לצד המהדר של Kotlin ומשתמש באותה גרסה כמו המהדר של Kotlin. פרטים נוספים על ההגדרות זמינים במאמר פלאגין Compose Compiler Gradle.
בגרסאות שקודמות ל-Kotlin 2.0, צריך לעיין במפת התאימות של Compose ל-Kotlin כדי לזהות גרסת קומפיילר שתואמת לגרסת Kotlin, ולעיין בקומפיילר של Compose כדי לקבל הנחיות להגדרה שלו.
איך משתמשים בגרסת ספרייה שונה מזו שמוגדרת ב-BOM?
בקטע של יחסי התלות של build.gradle, משאירים את הייבוא של פלטפורמת ה-BOM. בייבוא של יחסי התלות של הספרייה, מציינים את הגרסה שמחליפה את הגרסה הקודמת. לדוגמה, כך מצהירים על יחסי תלות אם רוצים להשתמש בגרסה חדשה יותר של ספריית האנימציה, בלי קשר לגרסה שצוינה ב-BOM:
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2026.09.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.13.0-alpha03") // .. }
מגניב
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2026.09.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.13.0-alpha03' // .. }
האם ה-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 }
מגניב
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
מה אם אני רוצה לנסות גרסאות אלפא או בטא של ספריות Compose?
יש שלושה קובצי Compose BOM זמינים. כל 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:2026.09.00") // or platform("androidx.compose:compose-bom-beta:2026.09.00") implementation(composeBom) // .. }
מגניב
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2026.09.00') // or platform('androidx.compose:compose-bom-beta:2026.09.00') implementation composeBom // .. }
איך מדווחים על בעיה או שולחים משוב על ה-BOM?
אתם יכולים לדווח על בעיות בIssue Tracker.
מומלץ בשבילך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- Material Design 3 ב-Compose
- פריסה אילוצית ב-Compose
- משאבים ב-Compose