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