از صورتحساب مواد استفاده کنید

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:2024.09.03")
    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.09.03')
    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، باید مطمئن شوید که از نسخه ای استفاده می کنید که با نسخه Kotlin شما سازگار است. می‌توانید نسخه Kotlin را که به هر نسخه از افزونه نقشه می‌دهد در Compose to Kotlin Compatibility Map و نحوه پیکربندی آن را در Compose Compiler بیابید.

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

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

کاتلین

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

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

    // ..
}

شیار

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

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.8.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:2024.09.03")
    //            or platform("androidx.compose:compose-bom-beta:2024.09.03")
    implementation(composeBom)
    // ..
}

شیار

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

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

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

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}