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