استفاده از درخت محصول

Compose Bill of Materials (BOM) به شما امکان می‌دهد همه نسخه‌های کتابخانه Compose را فقط با مشخص کردن نسخه BOM مدیریت کنید. خود BOM پیوندهایی به نسخه‌های پایدار کتابخانه‌های مختلف Compose دارد، به‌گونه‌ای که به‌خوبی با یکدیگر کار می‌کنند. هنگام استفاده از BOM در برنامه‌تان، لازم نیست هیچ نسخه‌ای را به وابستگی‌های کتابخانه Compose اضافه کنید. وقتی نسخه BOM را به‌روز می‌کنید، همه کتابخانه‌هایی که استفاده می‌کنید به‌طور خودکار به نسخه‌های جدیدشان به‌روز می‌شوند.

کاتلین

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2026.09.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.09.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 منتشر می‌شود.

از Kotlin 2.0، کامپایلر Compose در کنار کامپایلر Kotlin مدیریت می‌شود و از همان نسخه کامپایلر Kotlin استفاده می‌کند. برای جزئیات پیکربندی، افزایه Compose Compiler Gradle را ببینید.

در نسخه‌های پایین‌تر از Kotlin 2.0، به نقشه سازگاری Compose با Kotlin مراجعه کنید تا نسخه کامپایلری را که با نسخه Kotlin شما سازگار است شناسایی کنید و برای راهنمایی درباره پیکربندی آن، به کامپایلر Compose مراجعه کنید.

چگونه از نسخه کتابخانه‌ای متفاوت با آنچه در BOM تعیین شده است استفاده کنم؟

در بخش وابستگی‌های build.gradle، وارد کردن پلاتفرم BOM را حفظ کنید. در وارد کردن وابستگی کتابخانه، نسخه لغوکننده را مشخص کنید. برای مثال، اگر می‌خواهید از نسخه جدیدتر کتابخانه پویانمایی استفاده کنید، صرف‌نظر از اینکه چه نسخه‌ای در BOM تعیین شده است، نحوه اعلام وابستگی‌ها به این صورت است:

کاتلین

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2026.09.00")
    implementation(composeBom)

    // Override the BOM version when needed
    implementation("androidx.compose.animation:animation:1.13.0-alpha03")

    // ..
}

شیک

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform("androidx.compose:compose-bom:2026.09.00")
    implementation composeBom

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.13.0-alpha03'

    // ..
}

آیا BOM به‌طور خودکار همه کتابخانه‌های Compose را به برنامه‌ام اضافه می‌کند؟

نه. برای افزودن و استفاده از کتابخانه‌های Compose در برنامه‌تان، باید هر کتابخانه را به‌عنوان یک خط وابستگی جداگانه در فایل Gradle (معمولاً app/build.gradle) ماژول (سطح برنامه) خود اعلام کنید.

استفاده از BOM کمک می‌کند تأیید کنید که نسخه‌های هر کتابخانه Compose در برنامه شما سازگار هستند، اما BOM درواقع آن کتابخانه‌های Compose را به برنامه شما اضافه نمی‌کند.

ازاین‌پس، کتابخانه‌های Compose به‌طور مستقل نسخه‌بندی خواهند شد، یعنی شماره‌های نسخه با سرعت خاص خودشان افزایش خواهند یافت. جدیدترین نسخه‌های پایدار هر کتابخانه باهم آزمایش می‌شوند. بااین‌حال، پیدا کردن جدیدترین نسخه‌های پایدار هر کتابخانه می‌تواند دشوار باشد و BOM به شما کمک می‌کند به‌طور خودکار از این جدیدترین نسخه‌ها استفاده کنید.

آیا مجبورم از 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 واحدتان وارد کنید:

کاتلین

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 دردسترس است. هر BOM یک عکس آنی از نقطه‌ای زمانی از جدیدترین نسخه‌های دردسترس کتابخانه‌های Compose است.

  • پایدار - حاوی جدیدترین نسخه‌های پایدار هر کتابخانه است.
  • بتا - حاوی جدیدترین نسخه بتا، نامزد انتشار (RC)، یا نسخه‌های پایدار هر کتابخانه است.
  • آلفا - حاوی جدیدترین نسخه‌های آلفا، بتا، RC، یا پایدار هر کتابخانه است.

نسخه‌های آلفا و بتای BOM با افزودن -alpha و -beta به نام آرتیفکت BOM مشخص می‌شوند. نسخه پایدار پسوند ندارد.

کاتلین

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom-alpha:2026.09.00")
    //            or platform("androidx.compose:compose-bom-beta:2026.09.00")
    implementation(composeBom)
    // ..
}

شیک

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2026.09.00')
    //                   or platform('androidx.compose:compose-bom-beta:2026.09.00')
    implementation composeBom
    // ..
}

چگونه می‌توانم مشکلی را گزارش کنم یا درباره BOM بازخورد ارائه دهم؟

می‌توانید مشکلات را در ردیاب مشکل ما ثبت کنید.