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