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

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

Kotlin

dependencies {
    // Specify the Compose BOM with a version definition
    val composeBom = platform("androidx.compose:compose-bom:2025.08.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")
}

Groovy

dependencies {
    // Specify the Compose BOM with a version definition
    Dependency composeBom = platform('androidx.compose:compose-bom:2025.08.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 appcompiler को Kotlin कंपाइलर के साथ मैनेज किया जाता है. साथ ही, यह Kotlin कंपाइलर के वर्शन का ही इस्तेमाल करता है. कॉन्फ़िगरेशन के बारे में ज़्यादा जानने के लिए, Compose Compiler Gradle प्लगिन देखें.

Kotlin 2.0 से पहले, आपको यह पक्का करना होगा कि आपने Kotlin के साथ काम करने वाला वर्शन इस्तेमाल किया हो. आपको Compose और Kotlin के वर्शन के बीच काम करने की सुविधा से जुड़ा मैप पर, प्लगिन के हर वर्शन के साथ काम करने वाले Kotlin वर्शन के बारे में जानकारी मिल सकती है. साथ ही, Compose कंपाइलर पर, इसे कॉन्फ़िगर करने का तरीका भी मिल सकता है.

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

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

Kotlin

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

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

    // ..
}

Groovy

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

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.9.0-alpha02'

    // ..
}

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

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

BOM का इस्तेमाल करने से यह पक्का होता है कि आपके ऐप्लिकेशन में मौजूद Compose लाइब्रेरी के वर्शन एक-दूसरे के साथ काम करते हों. हालांकि, BOM आपके ऐप्लिकेशन में 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
}

Groovy

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:2025.08.00")
    //            or platform("androidx.compose:compose-bom-beta:2025.08.00")
    implementation(composeBom)
    // ..
}

Groovy

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

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

हमारे समस्या ट्रैकर पर समस्याएं सबमिट की जा सकती हैं.