चीज़ों का बिल इस्तेमाल करें

Compose के बिल ऑफ़ मटीरियल (बीओएम) की मदद से, Compose की सभी लाइब्रेरी के वर्शन मैनेज किए जा सकते हैं. इसके लिए, सिर्फ़ बीओएम का वर्शन तय करना होता है. बीओएम में, Compose की अलग-अलग लाइब्रेरी के स्टेबल वर्शन के लिंक होते हैं. इससे यह पक्का होता है कि ये लाइब्रेरी एक साथ अच्छी तरह काम करें. अपने ऐप्लिकेशन में बीओएम का इस्तेमाल करते समय, आपको Compose की लाइब्रेरी की डिपेंडेंसी में कोई वर्शन जोड़ने की ज़रूरत नहीं होती. बीओएम का वर्शन अपडेट करने पर, आपकी इस्तेमाल की जा रही सभी लाइब्रेरी अपने-आप नए वर्शन में अपडेट हो जाती हैं.

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2026.03.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.03.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 की लाइब्रेरी के कौनसा वर्शन, बीओएम के किस वर्शन से मैप किया गया है, बीओएम से लाइब्रेरी के वर्शन की मैपिंग देखें.

Compose Compiler लाइब्रेरी को बीओएम में क्यों शामिल नहीं किया गया है?

Compose के Kotlin कंपाइलर एक्सटेंशन (androidx.compose.compiler) को, Compose की लाइब्रेरी के वर्शन से लिंक नहीं किया गया है. इसके बजाय, इसे Kotlin कंपाइलर प्लग इन के वर्शन से लिंक किया गया है. साथ ही, इसे Compose के बाकी हिस्सों से अलग कैडेंस में रिलीज़ किया जाता है.

Kotlin 2.0 से, Compose के ऐप्लिकेशन कंपाइलर को Kotlin कंपाइलर के साथ मैनेज किया जाता है. साथ ही, यह Kotlin कंपाइलर के वर्शन का ही इस्तेमाल करता है. कॉन्फ़िगरेशन की ज़्यादा जानकारी के लिए, Compose Compiler Gradle प्लग इन देखें.

Kotlin 2.0 से पहले के वर्शन में, कंपाइलर का ऐसा वर्शन ढूंढने के लिए जो आपके Kotlin वर्शन के साथ काम करता हो, Compose to Kotlin Compatibility Map देखें. साथ ही, इसे कॉन्फ़िगर करने के बारे में जानकारी पाने के लिए, Compose Compiler देखें.

मैं बीओएम में तय किए गए वर्शन के बजाय, लाइब्रेरी के किसी दूसरे वर्शन का इस्तेमाल कैसे करूं?

build.gradle के डिपेंडेंसी सेक्शन में, बीओएम प्लैटफ़ॉर्म का इंपोर्ट बनाए रखें. लाइब्रेरी की डिपेंडेंसी के इंपोर्ट पर, ओवरराइड करने वाला वर्शन तय करें. उदाहरण के लिए, अगर आपको ऐनिमेशन लाइब्रेरी का नया वर्शन इस्तेमाल करना है, तो डिपेंडेंसी का एलान करने का तरीका यहां दिया गया है. भले ही, बीओएम में कोई भी वर्शन तय किया गया हो:

Kotlin

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

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

    // ..
}

शानदार

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

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.11.0-beta01'

    // ..
}

क्या बीओएम, Compose की सभी लाइब्रेरी को मेरे ऐप्लिकेशन में अपने-आप जोड़ देता है?

नहीं. अपने ऐप्लिकेशन में Compose की लाइब्रेरी जोड़ने और उनका इस्तेमाल करने के लिए, आपको अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर इसे app/build.gradle कहा जाता है) में हर लाइब्रेरी को डिपेंडेंसी की अलग लाइन के तौर पर एलान करना होगा.

बीओएम का इस्तेमाल करने से, यह पुष्टि करने में मदद मिलती है कि आपके ऐप्लिकेशन में Compose की लाइब्रेरी के वर्शन कंपैटिबल हैं या नहीं. हालांकि, बीओएम आपके ऐप्लिकेशन में Compose की लाइब्रेरी को नहीं जोड़ता.

आगे चलकर, Compose की लाइब्रेरी के वर्शन अलग-अलग होंगे. इसका मतलब है कि वर्शन नंबर अपनी रफ़्तार से बढ़ेंगे. हर लाइब्रेरी के हाल ही में रिलीज़ हुए स्टेबल वर्शन को एक साथ टेस्ट किया जाता है. हालांकि, हर लाइब्रेरी के हाल ही में रिलीज़ हुए स्टेबल वर्शन ढूंढना मुश्किल हो सकता है. बीओएम की मदद से, इन नए वर्शन का अपने-आप इस्तेमाल किया जा सकता है.

क्या बीओएम का इस्तेमाल करना ज़रूरी है?

नहीं. आपके पास हर डिपेंडेंसी का वर्शन मैन्युअल तरीके से जोड़ने का विकल्प अब भी है. हालांकि, हमारा सुझाव है कि आप बीओएम का इस्तेमाल करें, क्योंकि इससे सभी नए स्टेबल वर्शन का एक साथ इस्तेमाल करना आसान हो जाएगा.

क्या बीओएम, वर्शन कैटलॉग के साथ काम करता है?

हां. आपके पास वर्शन कैटलॉग में बीओएम को शामिल करने और Compose की लाइब्रेरी के अन्य वर्शन को शामिल न करने का विकल्प है:

[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }

अपने मॉड्यूल के 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 के तीन बीओएम उपलब्ध हैं. हर बीओएम, Compose की लाइब्रेरी के हाल ही में उपलब्ध वर्शन का पॉइंट-इन-टाइम स्नैपशॉट होता है.

  • स्टेबल - इसमें हर लाइब्रेरी के हाल ही में रिलीज़ हुए स्टेबल वर्शन शामिल होते हैं.
  • बीटा - इसमें हर लाइब्रेरी के हाल ही में रिलीज़ हुए बीटा, रिलीज़ कैंडिडेट (आरसी) या स्टेबल वर्शन शामिल होते हैं.
  • ऐल्फ़ा - इसमें हर लाइब्रेरी के हाल ही में रिलीज़ हुए ऐल्फ़ा, बीटा, आरसी या स्टेबल वर्शन शामिल होते हैं.

बीओएम के ऐल्फ़ा और बीटा वर्शन तय करने के लिए, बीओएम के आर्टफ़ैक्ट के नाम में -alpha और -beta जोड़ा जाता है. स्टेबल वर्शन में कोई सफ़िक्स नहीं होता.

Kotlin

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

शानदार

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

मैं बीओएम से जुड़ी कोई समस्या कैसे रिपोर्ट करूं या इस पर सुझाव/राय कैसे दूं?

समस्याओं को ट्रैक करने वाले हमारे टूल पर जाकर, समस्याएं सबमिट की जा सकती हैं.