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

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

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")
}

رائع

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.

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

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

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

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

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

في قسم الموارد التابعة لـ build.gradle، احتفظ باستيراد 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")

    // ..
}

رائع

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 إلى تطبيقي؟

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

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

من الآن فصاعدًا، سيتم إصدار مكتبات 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" }

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

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

يتمّ تحديد الإصدارَين الأولي والتجريبي من BOM عن طريق إضافة -alpha -beta إلى اسم عناصر 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)
    // ..
}

رائع

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
    // ..
}

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

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