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

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

Kotlin

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")
}

Groovy

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 कंपाइलर लाइब्रेरी को बीओएम में शामिल क्यों नहीं किया गया है?

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

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

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

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

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

Kotlin

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) में, अलग-अलग डिपेंडेंसी लाइन के तौर पर एलान करना होगा.

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

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

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

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

क्या 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" }

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

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

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

Kotlin

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)
    // ..
}

Groovy

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 से जुड़ी किसी समस्या की शिकायत कैसे करूं या उस पर सुझाव/राय कैसे दूं?

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