XR के लिए Jetpack Compose
नया अपडेट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
12 दिसंबर, 2024 | - | - | - | 1.0.0-alpha01 |
डिपेंडेंसी का एलान करना
XR compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha01") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.
ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
संस्करण 1.0
वर्शन 1.0.0-alpha01
12 दिसंबर, 2024
androidx.xr.compose:compose-*1.0.0-alpha01
रिलीज़ हो गया है.
शुरुआती रिलीज़ की सुविधाएं
XR के लिए Jetpack Compose की शुरुआती डेवलपर रिलीज़. XR में स्पेसिएल यूआई लेआउट बनाने के लिए, Compose के जाने-पहचाने कॉन्सेप्ट, जैसे कि पंक्तियों और कॉलम का इस्तेमाल करें. भले ही, आप किसी मौजूदा 2D ऐप्लिकेशन को XR में पोर्ट कर रहे हों या नए सिरे से कोई XR ऐप्लिकेशन बना रहे हों. इस लाइब्रेरी में, सबस्पेस और स्पेस वाले कॉम्पोज़ेबल उपलब्ध हैं. जैसे, स्पेस पैनल और ऑर्बिटर. इनकी मदद से, अपने मौजूदा 2D Compose या Views-आधारित यूज़र इंटरफ़ेस (यूआई) को स्पेस वाले लेआउट में रखा जा सकता है. इसमें वॉल्यूम सबस्पेस कॉम्पोज़ेबल की सुविधा जोड़ी गई है. इसकी मदद से, अपने यूज़र इंटरफ़ेस (यूआई) के हिसाब से, 3D मॉडल जैसी SceneCore इकाइयों को रखा जा सकता है. ज़्यादा जानकारी के लिए, डेवलपर गाइड पढ़ें:
Subspace
: इस कॉम्पोज़ेबल को आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) की हैरारकी में कहीं भी रखा जा सकता है. इससे, फ़ाइलों के बीच कॉन्टेक्स्ट खोए बिना, 2D और स्पेसिएल यूआई के लेआउट बनाए जा सकते हैं. इससे, XR और अन्य फ़ॉर्म फ़ैक्टर के बीच मौजूदा ऐप्लिकेशन आर्किटेक्चर जैसी चीज़ों को शेयर करना आसान हो जाता है. इसके लिए, आपको अपने पूरे यूज़र इंटरफ़ेस (यूआई) ट्री में स्टेटस को होस्ट करने या अपने ऐप्लिकेशन को फिर से आर्किटेक्ट करने की ज़रूरत नहीं होती.स्पेशल पैनल: स्पेशल पैनल, एक सबस्पेस कॉम्पोज़ेबल है. इसकी मदद से, ऐप्लिकेशन का कॉन्टेंट दिखाया जा सकता है. उदाहरण के लिए, स्पेशल पैनल में वीडियो प्लेबैक, स्टिल इमेज या कोई अन्य कॉन्टेंट दिखाया जा सकता है.
ऑर्बिटर: ऑर्बिटर, स्पेस वाला यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट होता है. इसे स्पेस पैनल से जोड़ने के लिए डिज़ाइन किया गया है. इसमें उस स्पेस पैनल से जुड़े नेविगेशन और संदर्भ के हिसाब से ऐक्शन आइटम होते हैं. उदाहरण के लिए, अगर आपने वीडियो कॉन्टेंट दिखाने के लिए स्पेस पैनल बनाया है, तो ऑर्बिटर में वीडियो चलाने के कंट्रोल जोड़े जा सकते हैं.
वॉल्यूम: अपने यूज़र इंटरफ़ेस (यूआई) के हिसाब से, SceneCore इकाइयों को रखें. जैसे, 3D मॉडल.
स्पेस लेआउट:
SpatialRow
,SpatialColumn
,SpatialBox
, औरSpatialLayoutSpacer
का इस्तेमाल करके, एक से ज़्यादा स्पेस पैनल बनाए जा सकते हैं और उन्हें स्पेस लेआउट में रखा जा सकता है. अपने लेआउट को पसंद के मुताबिक बनाने के लिए,SubspaceModifier
का इस्तेमाल करें.स्पेस के हिसाब से यूज़र इंटरफ़ेस (यूआई) के कॉम्पोनेंट: इन एलिमेंट का इस्तेमाल, आपके 2D यूज़र इंटरफ़ेस (यूआई) में फिर से किया जा सकता है. साथ ही, इनके स्पेस के हिसाब से एट्रिब्यूट सिर्फ़ तब दिखेंगे, जब स्पेस की सुविधाएं चालू हों.
SpatialDialog
: पैनल, ज़्यादा ऊंचाई वाला डायलॉग दिखाने के लिए, z-डेप्थ में थोड़ा पीछे धकेल दिया जाएगा.SpatialPopUp
: पैनल, ज़्यादा ऊंचाई वाला पॉप-अप दिखाने के लिए, z-डेप्थ में थोड़ा पीछे धकेल दिया जाएगाSpatialElevation
:SpatialElevationLevel
को ऊंचाई जोड़ने के लिए सेट किया जा सकता है.
SpatialCapabilities: जब उपयोगकर्ता आपके ऐप्लिकेशन या सिस्टम से इंटरैक्ट करते हैं, तो स्पेस की सुविधाओं में बदलाव हो सकता है. इसके अलावा, आपके ऐप्लिकेशन से भी इन सुविधाओं में बदलाव किया जा सकता है. उदाहरण के लिए, होम स्पेस या फ़ुल स्पेस में जाना. समस्याओं से बचने के लिए, आपके ऐप्लिकेशन को
LocalSpatialCapabilities.current
की जांच करनी होगी. इससे यह पता चलेगा कि मौजूदा एनवायरमेंट में कौनसे एपीआई काम करते हैं.isSpatialUiEnabled
: स्पेशल यूज़र इंटरफ़ेस (यूआई) एलिमेंट (जैसे, SpatialPanel)isContent3dEnabled
: 3D ऑब्जेक्टisAppEnvironmentEnabled
: एनवायरमेंटisPassthroughControlEnabled
: ऐप्लिकेशन, पासथ्रू स्टेटस को कंट्रोल कर सकता है या नहींisSpatialAudioEnabled
: स्पेशल ऑडियो
ऐसी समस्याएं जिनकी जानकारी पहले से है
- फ़िलहाल, XR के लिए Jetpack Compose का इस्तेमाल करने के लिए, कम से कम SDK टूल 30 वर्शन की ज़रूरत होती है. इस समस्या को हल करने के लिए, यहां दी गई मेनिफ़ेस्ट एंट्री
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
जोड़ें. इससे, ऐप्लिकेशन को 23 के मिनिमम SDK के साथ बनाया और चलाया जा सकेगा. - फ़िलहाल, Jetpack XR ऐप्लिकेशन के लिए AndroidManifest में
android.permission.SCENE_UNDERSTANDING
की अनुमति का अनुरोध करना ज़रूरी है. - जब कोई ऐप्लिकेशन अपने मेनिफ़ेस्ट में
PROPERTY_XR_ACTIVITY_START_MODE
प्रॉपर्टी का इस्तेमाल करके, सीधे फ़ुल स्पेस में लॉन्च होता है, तो ऐक्टिविटी/ऐप्लिकेशन शुरू में होम स्पेस में खुलते हैं. इसके बाद, वे फ़ुल स्पेस में ट्रांज़िशन होते हैं. - वॉल्यूम कॉम्पोज़ेबल में मौजूद glTF, शुरुआत में गलत जगह पर फ़्लिकर कर सकते हैं.
- अगर किसी ऐसे पैनल में SpatialDialog का इस्तेमाल किया जाता है जिसे काफ़ी आगे या पीछे ले जाया गया है, तो कॉन्टेंट गलत दिशा में चला जाएगा.