एक्सआर के लिए Jetpack Compose
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
30 जुलाई, 2025 | - | - | - | 1.0.0-alpha05 |
डिपेंडेंसी का एलान करना
XR Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha05" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha05") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha05") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 1.0.0-alpha05
30 जुलाई, 2025
androidx.xr.compose:compose:1.0.0-alpha05
और androidx.xr.compose:compose-testing:1.0.0-alpha05
रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha05 में ये कमिट शामिल हैं.
नई सुविधाएं
SubspaceComposable
एनोटेशन क्लास को सार्वजनिक किया गया. (Ic2a34, b/399432430)- दो नए
SpatialExternalSurface
कंपोज़ेबल, जो 180 और 360 डिग्री के गोले दिखाते हैं. (I40ef2, b/391705799) - जोड़ा गया
SubspaceModifier.aspectRatio
(Ide5ab, b/399729509, b/414762147) SceneCoreEntity
एपीआई जोड़ा गया है, ताकिSceneCore
और Compose for XR के बीच इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करना) को बेहतर बनाया जा सके. (I50bb3, b/423020989)- बिना स्केल किए गए और
GravityAligned
सुविधा (I07359) के लिए,GravityAlignedsubspace
API उपलब्ध कराया गया
एपीआई में हुए बदलाव
SpatialDialog()
,SpatialDialogProperties.dismissOnBack
के प्रेस कॉन्फ़िगरेशन का पालन करेगा. (Ib453b, b/416797132)minimumPanelDimension
कोDimensions(0.1f, 0.1f, 0.1f)
के नए डिफ़ॉल्ट डाइमेंशन साइज़ में अपडेट करें, क्योंकि इसे मीटर में दिखाया जाता है. (Ib852a)- सबस्पेस और ऑर्बिटर अब होम स्पेस में अपनी इंटरनल स्टेट बनाए रखेंगे. साथ ही, जब ऐप्लिकेशन बैकग्राउंड में होगा, तब भी ऐसा होगा. होम स्पेस मोड में, Subspace अब भी फ़ुल स्पेस मोड पर स्विच करने की तैयारी के लिए अपना सीन सेट अप करेगा. (I40317, b/416037751)
- अब ऐप्लिकेशन के बैकग्राउंड में होने पर भी,
SpatialDialogs
अपनी स्थिति बनाए रखेंगे. (I6aa56) ApplicationSubspace
अब सिस्टम से सुझाए गए स्केल और पोज़िशन को इनहेरिट करेगा. (I4565f, b/418834194)- जब
SubspaceComposable
का इस्तेमाल,SubspaceComposable
के कॉन्टेक्स्ट के बाहर किया जाता है, तो गड़बड़ी का बेहतर मैसेज जोड़ा गया है. साथ ही, गड़बड़ी को पहले ट्रिगर किया जाता है. (Iee2ae, b/416484684) ExperimentalSubspaceVolumeApi
को चेतावनी से बदलकर गड़बड़ी के तौर पर अपडेट किया गया है. ऐसा इसलिए किया गया है, क्योंकि कंपोज़ेबल एपीआई का गलत इस्तेमाल करने पर, अक्सर चेतावनियों को अनदेखा कर दिया जाता है. (I427aa, b/424864286)- सबस्पेस और
ApplicationSubspace
अबrecommendedContentBoxInFullSpace
की नीतियों के मुताबिक काम करेंगे. पहले, यहSpatialUser
के फ़ील्ड ऑफ़ व्यू (कैमरे से दिख रहा व्यू) से सीमित था. (I41015, b/423074142) SpatialElevation
को अपडेट करें, ताकि हार्ड कोड किए गए साइज़ का इस्तेमाल न किया जा सके और कम से कम साइज़ का इस्तेमाल किया जा सके (I2dbe6, b/427785338)SpatialAcitivityPanel
को स्क्रिम करने के तरीके को अपडेट करें, ताकि मुख्य वैरिएबल में बदलाव होने पर अपडेट किया जा सके. (I0f64d, b/427999029)VolumeConstraints.Unbounded
को हटाकर, डिफ़ॉल्ट कंस्ट्रेंट वैल्यू को इसके बराबर पर सेट करें. (Ie24ec, b/407938414)SpatialFeatheringSize
अब सार्वजनिक नहीं है (I1c15b, b/399432430)- XR
Placeable
का नाम बदलकरSubspacePlaceable
कर दिया गया है, ताकि इसे Compose केPlaceable
से अलग किया जा सके. (I74874) - Orbiter की सेटिंग हटाना और
shouldRenderInNonSpatial
को नए पैरामीटर के तौर पर जोड़ना. इसके अलावा, क्लासEdgeOffset
को हटा दिया गया है औरOrbiter()
फ़ंक्शन को एक साथ लाने के लिए,orbiterOffsetType
को नए पैरामीटर के तौर पर जोड़ा गया है. साथ ही,OrbiterEdge
का नाम बदलकरContentEdge
कर दिया गया है. (Iebf3d) - Compose के
Measurable
टाइप से अलग करने के लिए,Measurable
का नाम बदलकरSubspaceMeasurable
कर दिया गया है. (I9726c) MeasureResult
का नाम बदलकरSubspaceMeasureResult
(I9f34d) किया गयाsetSubspaceContent
एपीआई को हटा दिया गया है. अबSubspace
कंपोज़ेबल के साथ Compose केsetContent
का इस्तेमाल किया जा सकता है. (Ifff4c, b/421427391, b/421427391)MeasurePolicy
का नाम बदलकरSubspaceMeasurePolicy
कर दिया गया है. (I37a9b, b/422553904)SubspaceSemanticsInfo
को सील किए गए इंटरफ़ेस में बदलें, क्योंकि डिफ़ॉल्ट सेटिंग के बिना सदस्यों को नहीं जोड़ा जा सकेगा. (I372f9, b/423704068)SpatialExternalSurface
दस्तावेज़ अपडेट किया गया.ContentSecurityLevel
का नाम बदलकरSurfaceProtection
कर दिया गया (I3c460, b/420982808)- मूवेबल मॉडिफ़ायर के लिए ओवरलोड किया गया कंस्ट्रक्टर उपलब्ध कराया गया है. इससे ऐंकरिंग की जा सकती है. (Ic0c70)
- टूलटिप के लिए, पोज़िशन तय करने वाले और विकल्प जोड़े गए हैं. इससे डेवलपर यह कंट्रोल कर सकते हैं कि टूलटिप को ऐंकर के ऊपर, नीचे, बाईं ओर या दाईं ओर रखा जाए. केरेट के लिए एक ऐसा एपीआई जोड़ें जो शेप लेता हो, ताकि ज़्यादा कस्टम शेप दिए जा सकें. (Ie513c, b/374766087, b/418854637)
CoreEntity
कोPublishedApi
के तौर पर हटाया गया (Ifee05)
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसमें रेंडर करते समय
SpatialDialog
फ़्लैश होता था. (Ife73c, b/401619909) - इस अपडेट में, उस समस्या को ठीक किया गया है जिसमें
SpatialDialog
, गतिविधि पैनल को डिम नहीं कर पाता था. (I8ca6c, b/367442109) - XR डायलॉग में कुछ कॉन्टेंट नहीं दिख रहा है (I17cd5, b/418062437)
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से कॉन्टेंट पर क्लिक करने पर
SpatialPopup
बंद हो जाता था. (If262c, b/417245722) resizable().movable()
को चेन करने पर, SpatialPanel के नए साइज़ के हिसाब से ठीक से रीसाइज़ न होने की समस्या को ठीक किया गया है. (I02ee3, b/422264230)SpatialComposeVideoPlayer
में मेन्यू के साथ ओवरलैप हो रहाtopBar
ठीक किया गया (Id33bc, b/427168167)- कोने का तय किया गया रेडियस रेंडर नहीं हो रहा है (I975fe, b/428261830)
वर्शन 1.0.0-alpha04
7 मई, 2025
androidx.xr.compose:compose:1.0.0-alpha04
और androidx.xr.compose:compose-testing:1.0.0-alpha04
रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha04 में ये कमिट शामिल हैं.
नई सुविधाएं
CompositionLocalConsumerSubspaceModifierNode
इंटरफ़ेस जोड़ा गया है, ताकि कस्टमSubspaceModifier
टाइप, कंपोज़िशन लोकल वैल्यू को ऐक्सेस कर सकें.- एक नया
SpatialPanel
एपीआई जोड़ा गया है, जो कंपोज़AndroidView
लागू करने के तरीके का पालन करता है. साथ ही, यह पिछलेViewBased SpatialPanel
को बंद कर देता है. VolumeConstraints.Unbounded
कंपैनियन ऑब्जेक्ट जोड़ा गया है, जो अनबाउंडेड कंस्ट्रेंट को दिखाता है.- स्पैशलाइज़्ड ऑडियो सोर्स की अनुमति देने के लिए,
SubspaceModifier.onPointSourceParams
जोड़ा गया. - एक सार्वजनिक
ApplicationSubspace
जोड़ा गया है. इसमेंVolumeConstraints
को वैकल्पिक तौर पर जोड़ा गया है, ताकि 3D एरिया तय किया जा सके. इस एरिया में ऐप्लिकेशन, स्पेशल कॉन्टेंट रेंडर कर सकता है. डिफ़ॉल्ट रूप से, अगर कोई सीमा तय नहीं की जाती है, तो Subspace, चौड़ाई और ऊंचाई मेंSpatialUser
के मौजूदा फ़ील्ड ऑफ़ व्यू से बंधा होगा. अगर फ़ील्ड ऑफ़ व्यू का पता नहीं लगाया जा सकता, तो उपयोगकर्ता कुछ शर्तें दे सकते हैं. ऐसा न होने पर, फ़ील्ड ऑफ़ व्यू की चौड़ाई और ऊंचाई की डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. SpatialExternalSurface
को जोड़ा गया है. इसका इस्तेमाल, स्टीरियोस्कोपिक कॉन्टेंट को रेंडर करने के लिए किया जा सकता है.SpatialExternalSurface
को मॉडिफ़ायर (अल्फ़ा को छोड़कर) और एज फ़ेदरिंग इफ़ेक्ट के साथ पसंद के मुताबिक बनाया जा सकता है.- नया
pointerHoverIcon
सबस्पेस मॉडिफ़ायर जोड़ा गया है. इसकी मदद से उपयोगकर्ता, स्पैटियल पॉइंटर के लिए आइकॉन सेट कर सकते हैं.
एपीआई में हुए बदलाव
- Jetpack XR के सभी पैकेज पर से
RequiresApi(34)
पाबंदी हटा दी गई है. यह पाबंदी ज़रूरी नहीं थी, क्योंकि फ़िलहाल Jetpack XR सिर्फ़ उन डिवाइसों पर उपलब्ध है जिनमें एपीआई लेवल 34 या उसके बाद का वर्शन है. (Iae0f8) - Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है. (Idb6b5)
- अब बैक हैंडलिंग की सुविधा, एम्बेड की गई गतिविधियों के बिना स्पैटियल पैनल पर काम करेगी. बैक हैंडलिंग की सुविधा काम करे, इसके लिए आपको Android मेनिफ़ेस्ट में
android:enableOnBackInvokedCallback="true"
तय करना होगा. - अब बैकहैंडलिंग की सुविधा, स्पैटियल डायलॉग पर काम करेगी. बैकहैंडलिंग की सुविधा काम करे, इसके लिए आपको Android मेनिफ़ेस्ट में
android:enableOnBackInvokedCallback="true"
तय करना होगा. - कॉम्पोज़िशन और व्यू पर आधारित
SpatialPanel
अब अपने कॉन्टेंट के हिसाब से खुद को अडजस्ट कर सकते हैं. - अब डेवलपर,
SpatialElevationLevel
की अपनी कस्टम वैल्यू सेट कर सकते हैं. वे पहले से तय किए गए लेवल तक ही सीमित नहीं हैं. - अब
elevation
पैरामीटर की मदद से, ऑर्बिटर के एलिवेशन लेवल को पसंद के मुताबिक बनाया जा सकता है. - अब सबस्पेस को डिफ़ॉल्ट रूप से,
SpatialUser
के फ़ील्ड ऑफ़ व्यू की चौड़ाई और ऊंचाई के हिसाब से तय किया जा सकता है. अगर फ़ील्ड ऑफ़ व्यू का पता नहीं लगाया जा सकता, तो फ़ील्ड ऑफ़ व्यू की चौड़ाई और ऊंचाई की डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. Movable
मॉडिफ़ायर में नए कॉलबैकonMoveStart
औरonMoveEnd
जोड़े गए.onMoveStart
औरonMoveEnd
कॉलबैक तब कॉल किए जाते हैं, जब उपयोगकर्ता, मूव किए जा सकने वाले मॉडिफ़ायर के साथ कंपोज़ किए जा सकने वाले सबस्पेस को मूव करना शुरू और बंद करता है.name
पैरामीटर कोSpatialRow
औरSpatialPanel
जैसे स्पेशल एपीआई से हटा दिया गया है. स्पेशल कंपोज़ ट्री को डीबग करने के लिए,SubspaceModifier.testTag
का इस्तेमाल करें.SpatialPopup
के ऐसे ओवरलोड को हटाया गया है जिसका इस्तेमाल नहीं किया जा सकता. इसमें सिर्फ़spatialElevationLevel
औरcontent
शामिल हैं. कृपया ऐसे इंटरफ़ेस का इस्तेमाल करें जिस परonDimissRequest
काम करता हो.- Movable मॉडिफ़ायर से
onPoseChange
कॉलबैक को हटा दिया गया है. इसके बजाय,onMove
का इस्तेमाल करें. - अगर
SubspaceModifiers
को अलग कर दिया गया है या फ़िलहाल अलग किया जा रहा है, तो ये इफ़ेक्ट लागू नहीं होंगे. - मौजूदा
SpatialRow
API कोSpatialRow
औरSpatialCurvedRow
में बांट दिया गया है. अगर आपने पहलेSpatialRow
केcurveRadius
पैरामीटर का इस्तेमाल किया था, तो अबSpatialCurvedRow
का इस्तेमाल करें. यह पैरामीटर भी उसी तरह काम करता है. MainPanel
औरActivityPanel
को हाल ही के सिस्टम इमेज पर चलाने पर, अब टाइटल बार नहीं दिखते.- अल्फ़ा और स्केल मॉडिफ़ायर को अब स्टैक किया जा सकता है. साथ ही, ये मॉडिफ़ायर, लागू किए गए फ़ाइनल अल्फ़ा या स्केल वैल्यू के लिए अपनी वैल्यू को गुणा करेंगे.
onPoseChange
मूवेबल मॉडिफ़ायर से मिलने वाले कॉलबैक को ऑप्टिमाइज़ किया गया है, ताकि पोज़ को आसानी से मूव किया जा सके.- अब मूव किए जा सकने वाले और साइज़ बदलने वाले मॉडिफ़ायर, मुख्य थ्रेड पर अपने कॉलबैक करेंगे. इससे यह पक्का किया जा सकेगा कि स्थिति में बदलाव होने पर, फिर से कंपोज़िशन ट्रिगर हो.
- लेआउट और मेज़रमेंट फ़ेज़ में स्टेट ऑब्ज़र्वेशन जोड़ा गया है, ताकि यह पक्का किया जा सके कि
SubspaceLayout
में स्थिति बदलने पर, लेआउट फिर से ट्रिगर हो जाएगा. - मॉडिफ़ायर चेन को अपडेट करने की सुविधा को ऑप्टिमाइज़ किया गया है, ताकि मौजूदा मॉडिफ़ायर का बेहतर तरीके से फिर से इस्तेमाल किया जा सके.
गड़बड़ियां ठीक की गईं
SpatialDialog
दिखने पर, स्क्रिमिंग बंद हो गई. (Ic4594)- मॉडिफ़ायर नोड के अलग होने पर किए गए रिलआउट के अनुरोधों को अब अनदेखा कर दिया जाएगा.
- Movable और Resizable मॉडिफ़ायर की वजह से ट्रिगर होने वाले रीलआउट फ़ेज़ हटा दिए गए हैं.
MainPanel()
कंपोज़ेबल में क्रैश होने की समस्या को ठीक किया गया है.यह समस्या तब होती थी, जब किसी डाइमेंशन को सीधे तौर पर या लेआउट की गिनती के दौरान शून्य पर सेट किया जाता था. उदाहरण के लिए,SpatialRow/SpatialColumn
की गिनती. अब पैनल को छिपा दिया जाएगा. ध्यान दें कि यह फ़िक्स, लेआउट फ़ेज़ के दौरान होने वाली क्रैश की समस्या को ठीक करता है. उपयोगकर्ता के इंटरैक्शन के ज़रिए पैनल का साइज़ शून्य पर सेट करने की समस्या को अलग से ठीक किया जाएगा. छिपाए गए पैनल में यूज़र इंटरफ़ेस (यूआई) की सुविधाएं मौजूद नहीं हैं.- रीसाइज़ किए जा सकने वाले मॉडिफ़ायर से
maintainAspectRatio
से जुड़ी समस्या ठीक की गई. अब आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बनाए रखा जाना चाहिए. - नेस्ट किए गए सबस्पेस से जुड़ी उस समस्या को ठीक किया गया है जिसकी वजह से, उन्हें एक फ़्रेम के लिए गलत तरीके से रखा जाता था.
- उस समस्या को ठीक किया गया है जिसकी वजह से, कभी-कभी राउंड किए गए कोनों को तब लागू नहीं किया जाता था, जब उन्हें लागू किया जाना चाहिए था.
NestedSubspaces
अब गलत जगह पर एक फ़्रेम के लिए नहीं दिखेगा.
वर्शन 1.0.0-alpha03
26 फ़रवरी, 2025
androidx.xr.compose:compose:1.0.0-alpha03
और androidx.xr.compose:compose-testing:1.0.0-alpha03
को पिछले ऐल्फ़ा वर्शन के बाद से, बिना किसी खास बदलाव के रिलीज़ किया गया है. वर्शन 1.0.0-alpha03 में ये कमिट शामिल हैं
वर्शन 1.0.0-alpha02
12 फ़रवरी, 2025
androidx.xr.compose:compose:1.0.0-alpha02
और androidx.xr.compose:compose-testing:1.0.0-alpha02
रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha02 में ये कमिट शामिल हैं.
नई सुविधाएं
- स्पेशल डायलॉग चालू होने पर, गतिविधि पैनल अब अपने कॉन्टेंट को स्क्रिम कर सकता है.
Orbiter
API का इस्तेमाल अबSubspaceComposable
कॉन्टेक्स्ट में किया जा सकता है. साथ ही, यह ऑर्बिटर को उनके सबसे नज़दीकीSubspaceLayout
-आधारित कंपोज़ेबल पैरंट से जोड़ेगा.- कस्टम पोज़िशनिंग पर आधारित मॉडिफ़ायर की अनुमति देने के लिए,
LayoutCoordinatesAwareModifierNode
को लॉन्च किया गया. SubspaceModifier.Node
में अटैच/डिटैच लाइफ़साइकल के तरीके जोड़े गए.scaleWithDistance
को मूव किए जा सकने वाले मॉडिफ़ायर में जोड़ा गया.scaleWithDistance
चालू होने पर, सबस्पेस में ले जाए गए एलिमेंट का साइज़ बढ़ या घट जाएगा. साथ ही, यह पहले से मौजूद किसी भी स्केल को बनाए रखेगा.
एपीआई में हुए बदलाव
SpatialCapabilities
के पक्ष मेंSessionCallbackProvider
को हटाया गया.
दूसरे बदलाव
minSDK
को घटाकर 24 कर दिया गया. Jetpack XR के सभी एपीआई के लिए, रनटाइम में एपीआई 34 की ज़रूरत होती है.Orbiter
EdgeOffset.inner
,EdgeOffset.outer
, औरEdgeOffset.overlap
कंस्ट्रक्टर अब@Composable
तरीके नहीं हैं. इसलिए, इनका इस्तेमाल कंपोज़ेबल नहीं होने वाले कॉन्टेक्स्ट में किया जा सकता है.- स्पेशल एलिवेशन लेवल को अपडेट करें, ताकि वे यूज़र एक्सपीरियंस की नई खास बातों से मेल खाएं.
SubspaceSemanticsInfo
इंटरफ़ेस कोMeasurableLayout
में लागू करें.SubspaceModifierElement
का नाम बदलकरSubspaceModifierNodeElement
कर दिया गया.
गड़बड़ियां ठीक की गईं
SubspaceModifier
ऑर्डर करने की सुविधा को बेहतर बनाया गया है.SubspaceModifier
को ज़्यादा भरोसेमंद तरीके से काम करना चाहिए. अब ऑफ़सेट, घुमाने, स्केल करने, मूव करने, और साइज़ बदलने वाले मॉडिफ़ायर का इस्तेमाल किसी भी क्रम में किया जा सकता है.
वर्शन 1.0.0-alpha01
12 दिसंबर, 2024
androidx.xr.compose:compose-*1.0.0-alpha01
रिलीज़ हो गया है.
शुरुआती रिलीज़ की सुविधाएं
डेवलपर के लिए, Jetpack Compose for XR की शुरुआती रिलीज़. XR में स्पेशल यूज़र इंटरफ़ेस (यूआई) लेआउट बनाने के लिए, Compose के जाने-पहचाने कॉन्सेप्ट का इस्तेमाल करें. जैसे, लाइनें और कॉलम. भले ही, आपको किसी मौजूदा 2D ऐप्लिकेशन को XR पर पोर्ट करना हो या नया XR ऐप्लिकेशन बनाना हो. इस लाइब्रेरी में सबस्पेस और स्पैटियल कंपोज़ेबल उपलब्ध हैं. जैसे, स्पैटियल पैनल और ऑर्बिटर. इनकी मदद से, अपने मौजूदा 2D कंपोज़ या व्यू पर आधारित यूज़र इंटरफ़ेस (यूआई) को स्पैटियल लेआउट में रखा जा सकता है. इसमें Volume subspace composable को पेश किया गया है. इसकी मदद से, SceneCore की इकाइयों को अपने यूज़र इंटरफ़ेस (यूआई) के हिसाब से रखा जा सकता है. जैसे, 3D मॉडल. इस डेवलपर गाइड में ज़्यादा जानें:
Subspace
: इस कंपोज़ेबल को आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के किसी भी हिस्से में रखा जा सकता है. इससे आपको फ़ाइलों के बीच के कॉन्टेक्स्ट को बनाए रखते हुए, 2D और स्पेशल यूज़र इंटरफ़ेस (यूआई) के लेआउट को बनाए रखने में मदद मिलती है. इससे, एक्सआर और अन्य डिवाइसों के बीच मौजूदा ऐप्लिकेशन आर्किटेक्चर जैसी चीज़ें शेयर करना आसान हो जाता है. इसके लिए, आपको अपने पूरे यूज़र इंटरफ़ेस (यूआई) ट्री में स्टेट को ऊपर ले जाने या अपने ऐप्लिकेशन को फिर से आर्किटेक्ट करने की ज़रूरत नहीं होती.SpatialPanel: SpatialPanel, कंपोज़ किया जा सकने वाला एक सबस्पेस है. इसकी मदद से, ऐप्लिकेशन का कॉन्टेंट दिखाया जा सकता है. उदाहरण के लिए, SpatialPanel में वीडियो प्लेबैक, स्थिर इमेज या कोई अन्य कॉन्टेंट दिखाया जा सकता है.
ऑर्बिटर: ऑर्बिटर, एक स्पेशल यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट होता है. इसे किसी स्पैटियल पैनल से अटैच करने के लिए डिज़ाइन किया गया है. इसमें उस स्पैटियल पैनल से जुड़े नेविगेशन और कॉन्टेक्स्ट के हिसाब से ऐक्शन आइटम होते हैं. उदाहरण के लिए, अगर आपने वीडियो कॉन्टेंट दिखाने के लिए कोई स्पेशल पैनल बनाया है, तो ऑर्बिटर में वीडियो चलाने के कंट्रोल जोड़े जा सकते हैं.
वॉल्यूम: SceneCore की इकाइयों, जैसे कि 3D मॉडल को अपने यूज़र इंटरफ़ेस (यूआई) के हिसाब से रखें.
स्पेशल लेआउट:
SpatialRow
,SpatialColumn
,SpatialBox
, औरSpatialLayoutSpacer
का इस्तेमाल करके, एक से ज़्यादा स्पेशल पैनल बनाए जा सकते हैं. साथ ही, उन्हें स्पेशल लेआउट में रखा जा सकता है. अपने लेआउट को पसंद के मुताबिक बनाने के लिए,SubspaceModifier
s का इस्तेमाल करें.स्पेशल यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट: इन एलिमेंट का इस्तेमाल, आपके 2D यूज़र इंटरफ़ेस (यूआई) में फिर से किया जा सकता है. इनके स्पेशल एट्रिब्यूट सिर्फ़ तब दिखेंगे, जब स्पेशल सुविधाएं चालू होंगी.
SpatialDialog
: पैनल, z-डेप्थ में थोड़ा पीछे की ओर जाएगा, ताकि एलिवेटेड डायलॉग दिखाया जा सके.SpatialPopUp
: पैनल को z-डेप्थ में थोड़ा पीछे की ओर ले जाया जाएगा, ताकि एलिवेटेड पॉप-अप दिखाया जा सकेSpatialElevation
: ऊंचाई जोड़ने के लिए,SpatialElevationLevel
को सेट किया जा सकता है.
SpatialCapabilities: उपयोगकर्ताओं के आपके ऐप्लिकेशन या सिस्टम के साथ इंटरैक्ट करने पर, SpatialCapabilities में बदलाव हो सकता है. साथ ही, आपका ऐप्लिकेशन भी इसमें बदलाव कर सकता है. उदाहरण के लिए, होम स्पेस या फ़ुल स्पेस में जाना. समस्याओं से बचने के लिए, आपके ऐप्लिकेशन को
LocalSpatialCapabilities.current
की जांच करनी होगी, ताकि यह पता चल सके कि मौजूदा एनवायरमेंट में कौनसे एपीआई काम करते हैं.isSpatialUiEnabled
: स्पेशल यूज़र इंटरफ़ेस (यूआई) एलिमेंट (जैसे, SpatialPanel)isContent3dEnabled
: 3D ऑब्जेक्टisAppEnvironmentEnabled
: एनवायरमेंटisPassthroughControlEnabled
: ऐप्लिकेशन, पासथ्रू की स्थिति को कंट्रोल कर सकता है या नहींisSpatialAudioEnabled
: स्पेशल ऑडियो
ऐसी समस्याएं जिनके बारे में जानकारी पहले से है
- फ़िलहाल, XR के लिए Jetpack Compose का इस्तेमाल करने के लिए, minSDK 30 की ज़रूरत होती है. इस समस्या को हल करने के लिए, यहां दी गई मेनिफ़ेस्ट एंट्री
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
जोड़ें, ताकि कम से कम SDK 23 के साथ ऐप्लिकेशन बनाया और चलाया जा सके. - फ़िलहाल, Jetpack XR ऐप्लिकेशन को AndroidManifest में
android.permission.SCENE_UNDERSTANDING
अनुमति का अनुरोध करना होता है. - जब कोई ऐप्लिकेशन, अपने मेनिफ़ेस्ट में
PROPERTY_XR_ACTIVITY_START_MODE
प्रॉपर्टी का इस्तेमाल करके सीधे तौर पर फ़ुल स्पेस में लॉन्च होता है, तो ऐक्टिविटी/ऐप्लिकेशन को फ़ुल स्पेस में ट्रांज़िशन करने से पहले, होम स्पेस में खोला जाता है. - वॉल्यूम कंपोज़ेबल में मौजूद glTF, शुरुआत में गलत जगह पर फ़्लिकर हो सकते हैं.
- किसी ऐसे पैनल में SpatialDialog का इस्तेमाल करने से कॉन्टेंट गलत दिशा में चला जाएगा जिसे काफ़ी हद तक मूव किया गया है.