تتيح لك قائمة مواد Compose إدارة جميع إصدارات مكتبة Compose من خلال تحديد إصدار قائمة المواد فقط. يتضمّن بيان المواد (BOM) نفسه روابط تؤدي إلى الإصدارات الثابتة من مكتبات Compose المختلفة، وذلك بطريقة تضمن عملها معًا بشكل جيد. عند استخدام BOM في تطبيقك، لن تحتاج إلى إضافة أي إصدار إلى تبعيات مكتبة Compose نفسها. عند تعديل إصدار BOM، يتم تلقائيًا تعديل جميع المكتبات التي تستخدمها إلى إصداراتها الجديدة.
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2025.05.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") }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom:2025.05.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' }
لمعرفة إصدارات مكتبة Compose التي تم ربطها بإصدار معيّن من BOM، اطّلِع على عملية الربط بين BOM وإصدار المكتبة.
لماذا لا يتم تضمين مكتبة Compose Compiler في قائمة BOM؟
لا يرتبط امتداد برنامج التجميع في Compose Kotlin (androidx.compose.compiler) بإصدارات مكتبة Compose. بدلاً من ذلك، يتم ربطها بإصدارات من مكوّن Kotlin الإضافي للمترجم ويتم طرحها بوتيرة منفصلة عن بقية Compose.
اعتبارًا من الإصدار 2.0 من Kotlin، تتم إدارة أداة appcompiler الخاصة بمجموعة أدوات Compose إلى جانب أداة تجميع Kotlin، ويتم استخدام الإصدار نفسه من أداة تجميع Kotlin. راجِع مكوّن Compose الإضافي في Gradle للحصول على تفاصيل الإعداد.
قبل الإصدار 2.0 من Kotlin، عليك التأكّد من استخدام إصدار متوافق مع إصدار 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:2025.05.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.9.0-alpha02") // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2025.05.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.9.0-alpha02' // .. }
هل تضيف "إدارة إصدارات Compose" جميع مكتبات Compose إلى تطبيقي تلقائيًا؟
لا، لإضافة مكتبات Compose واستخدامها في تطبيقك، عليك تحديد كل مكتبة كسطر اعتمادية منفصل في ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً app/build.gradle).
يضمن استخدام قائمة المواد (BOM) توافق إصدارات أي مكتبات Compose في تطبيقك، ولكنّها لا تضيف مكتبات Compose هذه إلى تطبيقك.
لماذا يُنصح باستخدام BOM لإدارة إصدارات مكتبة Compose؟
من الآن فصاعدًا، سيتم إصدار إصدارات من مكتبات Compose بشكل مستقل، ما يعني أنّ أرقام الإصدارات ستتم زيادتها بوتيرة خاصة بها. يتم اختبار أحدث الإصدارات الثابتة من كل مكتبة معًا. ومع ذلك، قد يكون من الصعب العثور على أحدث الإصدارات الثابتة من كل مكتبة، ويساعدك ملف 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؟
تتوفّر ثلاث حزم Compose BOM. كل قائمة مواد (BOM) هي لقطة في وقت معيّن لأحدث إصدارات مكتبات Compose المتاحة.
- ثابتة: تحتوي على أحدث الإصدارات الثابتة من كل مكتبة
- الإصدار التجريبي: يحتوي على أحدث إصدار تجريبي أو إصدار مرشّح (RC) أو إصدار ثابت من كل مكتبة
- الإصدار الأولي: يحتوي على أحدث الإصدارات الأولية أو التجريبية أو إصدارات مرشّحة أو ثابتة من كل مكتبة
يتم تحديد إصدارَي Alpha وBeta من قائمة BOM عن طريق إضافة -alpha
و-beta
إلى اسم عنصر BOM. لا يتضمّن الإصدار الثابت أي لاحقة.
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2025.05.00") // or platform("androidx.compose:compose-bom-beta:2025.05.00") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2025.05.00') // or platform('androidx.compose:compose-bom-beta:2025.05.00') implementation composeBom // .. }
كيف يمكنني الإبلاغ عن مشكلة أو تقديم ملاحظات حول قائمة المواد؟
يمكنك الإبلاغ عن المشاكل في أداة تتبُّع المشاكل.
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- Material Design 3 في Compose
- ConstraintLayout في Compose
- المراجع في ميزة "الكتابة بذكاء"