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

تتيح لك فاتورة مواد Compose إدارة جميع إصدارات مكتبة Compose من خلال تحديد إصدار فاتورة المواد فقط. يتضمّن ملف قائمة المرجع البرمجي روابط إلى الإصدارات الثابتة من مكتبات Compose المختلفة، وذلك بطريقة تجعلها تعمل معًا بشكل جيد. عند استخدام ملف قائمة المكوّنات في تطبيقك، ليس عليك إضافة أي إصدار إلى مكتبة 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 Compiler في قائمة مواد العرض؟

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

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

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

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

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

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

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

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