استخدام قائمة المواد

تتيح لك قائمة مواد Compose (BOM) إدارة جميع إصدارات مكتبة Compose من خلال تحديد إصدار قائمة مواد BOM فقط. يتضمّن ملف قائمة المرجع البرمجي روابط إلى الإصدارات الثابتة من مكتبات Compose المختلفة، وذلك بطريقة تجعلها تعمل معًا بشكل جيد. عند استخدام كائن BOM في تطبيقك، لن تحتاج إلى إضافة أي إصدار إلى تبعيات مكتبة Compose نفسها. عند تعديل إصدار قائمة بمواد العرض، يتم تلقائيًا تعديل جميع المكتبات التي تستخدمها لتصبح بالإصدارات الجديدة.

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2024.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")
}

رائع

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom:2024.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 معيّن، اطّلِع على ربط قائمة بمواد العرض بإصدار المكتبة.

لماذا لا يتم تضمين مكتبة Compose Compilers في BOM؟

لا تكون إضافة مُجمِّع Compose Kotlin (androidx.compose.compiler) مرتبطة بإصدارات مكتبة Compose. بدلاً من ذلك، يتم ربطه بإصدارات من المكوّن الإضافي لمجمع Kotlin ويتم إصداره بمعدّل منفصل عن بقية Compose.

اعتبارًا من الإصدار 2.0 من Kotlin، يتمّ إدارة مُجمِّع تطبيقات Compose إلى جانب مُجمِّع Kotlin ويستخدم الإصدار نفسه المستخدَم في مُجمِّع Kotlin. اطلِع على Compose Compiler Gradle الإضافي للحصول على تفاصيل حول عملية الضبط.

قبل الإصدار 2.0 من Kotlin، يجب التأكد من استخدام إصدار متوافق مع إصدار Kotlin. يمكنك العثور على إصدار Kotlin المرتبط بكل إصدار من المكوِّن الإضافي من خلال Compose to Kotlin Compiler، وكيفية إعداده في Compose Compiler.

كيف يمكنني استخدام إصدار مكتبة مختلف عن الإصدار المحدّد في قائمة مواد العرض؟

في قسم الموارد التابعة build.gradle، احتفظ باستيراد منصة BOM. في عملية استيراد المرجع التابع للمكتبة، حدِّد الإصدار الذي سيتم إلغاؤه. على سبيل المثال، إليك كيفية تعريف التبعيات إذا كنت تريد استخدام إصدار أحدث من مكتبة الرسوم المتحركة، بغض النظر عن الإصدار المعيّن في BOM:

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2024.10.01")
    implementation(composeBom)

    // Override the BOM version when needed
    implementation("androidx.compose.animation:animation:1.8.0-alpha05")

    // ..
}

رائع

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform("androidx.compose:compose-bom:2024.10.01")
    implementation composeBom

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.8.0-alpha05'

    // ..
}

هل تضيف BOM تلقائيًا جميع مكتبات Compose إلى تطبيقي؟

لا. لإضافة مكتبات Compose واستخدامها في تطبيقك، عليك تحديد كل مكتبة باعتبارها سطر تبعية منفصل في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً ما يكون app/build.gradle).

يضمن استخدام مخطّط إدارة الإصدارات توافق إصدارات أي مكتبات Compose في تطبيقك، ولكن لا يضيف مخطّط إدارة الإصدارات هذه المكتبات إلى تطبيقك.

من الآن فصاعدًا، سيتم إصدار مكتبات Compose بشكل مستقل، ما يعني أنّه سيبدأ تحسين أرقام الإصدارات وفقًا لوتيرة كل مكتبة. يتم اختبار أحدث الإصدارات الثابتة من كل مكتبة معًا. ومع ذلك، قد يكون من الصعب العثور على أحدث الإصدارات الثابتة من كل مكتبة، ويساعدك مخطّط إدارة المكونات في استخدام هذه الإصدارات الأحدث تلقائيًا.

هل عليّ استخدام BOM؟

لا، سيظل بإمكانك إضافة كل إصدار من إصدارات التبعية يدويًا. ومع ذلك، ننصح باستخدام قائمة مواد العرض لأنّها ستسهّل استخدام جميع أحدث الإصدارات الثابتة في الوقت نفسه.

هل تعمل قائمة المواد مع كتالوجات الإصدارات؟

نعم. يمكنك تضمين قائمة مواد العرض نفسها في قائمة الإصدارات، وحذف إصدارات مكتبة Compose الأخرى:

[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }

لا تنسَ استيراد قائمة مواد التصنيع في 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 متاحة. كل قائمة بمواد العرض هي لقطة زمنية لأحدث إصدارات متاحة من مكتبات Compose.

  • الإصدار الثابت: يحتوي على أحدث الإصدارات الثابتة من كل مكتبة
  • الإصدار التجريبي: يحتوي على أحدث إصدار تجريبي أو إصدار مرشح للإصدار (RC) أو إصدار ثابت من كل مكتبة
  • الإصدار الأولي: يحتوي على أحدث إصدار أولي أو تجريبي أو إصدار لاحق أو إصدار ثابت من كل مكتبة

يتم تحديد الإصدارَين التجريبيَين من قائمة مواد العرض من خلال إضافة -alpha و -beta إلى اسم عنصر قائمة مواد العرض. لا يحتوي الإصدار الثابت على لاحقة.

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom-alpha:2024.10.01")
    //            or platform("androidx.compose:compose-bom-beta:2024.10.01")
    implementation(composeBom)
    // ..
}

رائع

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.10.01')
    //                   or platform('androidx.compose:compose-bom-beta:2024.10.01')
    implementation composeBom
    // ..
}

كيف يمكنني الإبلاغ عن مشكلة أو تقديم ملاحظات حول قائمة مواد العرض؟

يمكنك الإبلاغ عن المشاكل من خلال أداة تتبُّع المشاكل.