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 लाइब्रेरी के वर्शन अलग-अलग होंगे. इसका मतलब है कि वर्शन नंबर अपने हिसाब से बढ़ने लगेंगे. हर लाइब्रेरी के हाल ही के स्टेबल वर्शन की एक साथ जाँच की जाती है. हालांकि, हर लाइब्रेरी के सबसे नए स्टेबल वर्शन ढूंढना मुश्किल हो सकता है. बीओएम की मदद से, इन सबसे नए वर्शन का अपने-आप इस्तेमाल किया जा सकता है.
क्या मुझे बीओएम का इस्तेमाल करना ही होगा?
नहीं. अब भी हर डिपेंडेंसी वर्शन को मैन्युअल तरीके से जोड़ा जा सकता है. हालांकि, हमारा सुझाव है कि बीओएम का इस्तेमाल करें. इससे सभी नए स्टेबल वर्शन को एक साथ इस्तेमाल करना आसान हो जाएगा.
क्या बीओएम, वर्शन कैटलॉग के साथ काम करता है?
हां. वर्शन कैटलॉग में बीओएम को शामिल किया जा सकता है. साथ ही, 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 // .. }
मैं बीओएम से जुड़ी किसी समस्या की शिकायत कैसे करूं या इस बारे में सुझाव/राय कैसे दूं?
हमारे समस्या ट्रैकर पर समस्याएं सबमिट की जा सकती हैं.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- Compose में Material Design 3
- Compose में ConstraintLayout
- Compose में उपलब्ध संसाधन