إعداد المكوّن الإضافي Compose Compiler Gradle

إذا كنت تستخدم Gradle، يمكنك استخدام المكوّن الإضافي Compose Compiler Gradle لتسهيل عملية إعداد Compose وضبطه.

الإعداد باستخدام كتالوجات إصدارات Gradle

توضّح التعليمات التالية كيفية إعداد المكوّن الإضافي Compose Compiler Gradle:

  1. في ملف libs.versions.toml، أزِل أي إشارة إلى Compose Compiler.
  2. في قسم المكوّنات الإضافية، أضِف التبعية الجديدة التالية.
[versions]
kotlin = "2.0.0"

[plugins]
org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

// Add this line
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
  1. في ملف build.gradle.kts الجذر الخاص بمشاريعك، أضِف المقتطف التالي إلى قسم المكوّنات الإضافية.
plugins {
   // Existing plugins
   alias(libs.plugins.compose.compiler) apply false
}
  1. في كل وحدة تستخدم Compose، طبِّق المكوّن الإضافي على النحو التالي.
plugins {
   // Existing plugins
   alias(libs.plugins.compose.compiler)
}

من المفترض أن يتم إنشاء تطبيقك وتجميعه الآن إذا كنت تستخدم الإعدادات التلقائية. إذا كنت قد أعددت خيارات مخصّصة في برنامج التجميع Compose، يمكنك الاطّلاع على القسم التالي.

إعداد Compose Compiler بدون كتالوجات إصدارات Gradle

أضِف المكوّن الإضافي التالي إلى ملفات build.gradle.kts المرتبطة بالوحدات التي تستخدمها في Compose:

plugins {
    id("org.jetbrains.kotlin.plugin.compose") version "2.0.0" // this version matches your Kotlin version
}

قد تحتاج أيضًا إلى إضافة مسار الفئة هذا إلى ملف build.gradle.kts الخاص بمشروعك على المستوى الأعلى:

buildscript {
    dependencies {
        classpath("org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:2.0.0")
    }
}

خيارات الإعداد باستخدام المكوّن الإضافي لنظام Gradle الخاص ببرنامج Compose Compiler

لضبط إعدادات برنامج التجميع في Compose باستخدام المكوّن الإضافي Gradle، أضِف كتلة composeCompiler إلى ملف build.gradle.kts الخاص بالوحدة في المستوى الأعلى.

android {  }

composeCompiler {
    reportsDestination = layout.buildDirectory.dir("compose_compiler")
    stabilityConfigurationFile = rootProject.layout.projectDirectory.file("stability_config.conf")
}

للاطّلاع على القائمة الكاملة بالخيارات المتاحة، يُرجى الرجوع إلى المستندات.

إعداد تبعيات Compose

أضِف التعريف التالي إلى ملف build.gradle في تطبيقك:

Groovy

android {
    buildFeatures {
        compose true
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }
}

يؤدي ضبط العلامة compose على true داخل حزمة BuildFeatures في Android إلى تفعيل وظائف Compose في "استوديو Android".

أخيرًا، أضِف قائمة مواد Compose ومجموعة فرعية من تبعيات مكتبة Compose التي تحتاج إليها إلى التبعيات من القسم التالي:

Groovy

dependencies {

    def composeBom = platform('androidx.compose:compose-bom:2026.01.01')
    implementation composeBom
    androidTestImplementation composeBom

    // Choose one of the following:
    // Material Design 3
    implementation 'androidx.compose.material3:material3'
    // or skip Material Design and build directly on top of foundational components
    implementation 'androidx.compose.foundation:foundation'
    // or only import the main APIs for the underlying toolkit systems,
    // such as input and measurement/layout
    implementation 'androidx.compose.ui:ui'

    // Android Studio Preview support
    implementation 'androidx.compose.ui:ui-tooling-preview'
    debugImplementation 'androidx.compose.ui:ui-tooling'

    // UI Tests
    androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
    debugImplementation 'androidx.compose.ui:ui-test-manifest'

    // Optional - Add window size utils
    implementation 'androidx.compose.material3.adaptive:adaptive'

    // Optional - Integration with activities
    implementation 'androidx.activity:activity-compose:1.11.0'
    // Optional - Integration with ViewModels
    implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5'
    // Optional - Integration with LiveData
    implementation 'androidx.compose.runtime:runtime-livedata'
    // Optional - Integration with RxJava
    implementation 'androidx.compose.runtime:runtime-rxjava2'

}

Kotlin

dependencies {

    val composeBom = platform("androidx.compose:compose-bom:2026.01.01")
    implementation(composeBom)
    androidTestImplementation(composeBom)

    // Choose one of the following:
    // Material Design 3
    implementation("androidx.compose.material3:material3")
    // or skip Material Design and build directly on top of foundational components
    implementation("androidx.compose.foundation:foundation")
    // or only import the main APIs for the underlying toolkit systems,
    // such as input and measurement/layout
    implementation("androidx.compose.ui:ui")

    // Android Studio Preview support
    implementation("androidx.compose.ui:ui-tooling-preview")
    debugImplementation("androidx.compose.ui:ui-tooling")

    // UI Tests
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-test-manifest")

    // Optional - Add window size utils
    implementation("androidx.compose.material3.adaptive:adaptive")

    // Optional - Integration with activities
    implementation("androidx.activity:activity-compose:1.11.0")
    // Optional - Integration with ViewModels
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5")
    // Optional - Integration with LiveData
    implementation("androidx.compose.runtime:runtime-livedata")
    // Optional - Integration with RxJava
    implementation("androidx.compose.runtime:runtime-rxjava2")

}