שימוש בשטר החומרים

חשבון הכתיבה של חומר לימוד (BOM) מאפשר לך לנהל את כל ספריית הכתיבה שלך גרסאות באמצעות ציון רק את גרסת ה-BOM. ה-BOM עצמו כולל קישורים לגרסאות היציבות של ספריות פיתוח שונות, כך שהן יפעלו היטב יחד. מתי באמצעות ה-BOM באפליקציה, אין צורך להוסיף כל גרסה וגרסה ליחסי התלות של ספריית 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'
}

כדי לבדוק אילו גרסאות של ספריית פיתוח נייטיב ממופות לגרסת BOM ספציפית: כדאי לעיין במיפוי של BOM לגרסאות של ספריות.

למה הספרייה 'מהדר (Complier)' לא נכללת ב-BOM?

תוסף המהדר של Compose Kotlin (androidx.compose.compiler) אינו מקושר לגרסאות של ספריית הכתיבה. במקום זאת, הוא מקושר לגרסאות של Kotlin של כלי ה הידור (compiler) שהושקו בקצב נפרד משאר תהליך הכתיבה, עליך להקפיד להשתמש בגרסה שתואמת לגרסת Kotlin שלך. שלך את גרסת Kotlin עם מיפוי לכל גרסה של הפלאגין בכתובת Compose למפת התאימות של Kotlin.

איך משתמשים בגרסת ספרייה שונה מזו שצוינה ב-BOM?

בקטע של יחסי התלות build.gradle, שומרים את הייבוא של ה-BOM הפלטפורמה. בייבוא התלות של הספרייה, מציינים את הגרסה הרצויה. עבור לדוגמה, כך מצהירים אם רוצים להשתמש בגרסה חדשה יותר של ספריית האנימציה, ללא קשר לגרסה שצוינה ב-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 מוסיף באופן אוטומטי את כל ספריות הכתיבה לאפליקציה שלי?

לא. כדי להוסיף ספריות של פיתוח נייטיב ולהשתמש בהן באפליקציה, צריך להצהיר על כל אחת מהן כשורת תלות נפרדת בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל app/build.gradle).

השימוש ב-BOM מבטיח שהגרסאות של כל ספריות הכתיבה באפליקציה אבל ה-BOM לא מוסיף בפועל את ספריות ה-Compose. אפליקציה.

בהמשך, גרסאות של ספריות כתיבה יהיו נפרדות. כלומר, מספרי הגרסאות יתחילו לגדול בקצב שלהם. העדכניים ביותר גרסאות יציבות של כל ספרייה נבדקות ומובטח שהן יפעלו כמו שצריך את כל החלקים. עם זאת, אפשר למצוא את הגרסאות היציבות והעדכניות ביותר של כל ספרייה קשה, וה-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?

תוכלו לדווח על בעיות באתר המעקב אחר בעיות.