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

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

Kotlin

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

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

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

Kotlin

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

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

    // ..
}

Groovy

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

    // Override the BOM version when needed
    implementation 'androidx.compose.animation:animation:1.10.0-alpha04'

    // ..
}

क्या बीओएम, मेरे ऐप्लिकेशन में सभी 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.10.00")
    //            or platform("androidx.compose:compose-bom-beta:2025.10.00")
    implementation(composeBom)
    // ..
}

Groovy

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

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

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