एक्सआर के लिए Jetpack Compose
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
24 सितंबर, 2025 | - | - | - | 1.0.0-alpha07 |
डिपेंडेंसी का एलान करना
XR Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha07" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha07" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha07") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha07") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 1.0.0-alpha07
24 सितंबर, 2025
androidx.xr.compose:compose:1.0.0-alpha07
और androidx.xr.compose:compose-testing:1.0.0-alpha07
रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
SpatialMainPanel
के लिए बेहतर KDocs. (I27b70, b/444467891)SpatialArrangement
को इसलिए पेश किया गया है, ताकि बच्चों को 3D लेआउट में मुख्य ऐक्सिस के साथ व्यवस्थित किया जा सके. जैसे,SpatialRow
औरSpatialColumn
. इस नए एपीआई में, 2D Compose की तरह ही लेआउट के विकल्प मिलते हैं. जैसे,Start
,End
,Center
,SpaceBetween
,SpaceAround
, औरSpaceEvenly
. साथ ही, इसमें एलटीआर और आरटीएल, दोनों तरह के लेआउट का इस्तेमाल किया जा सकता है. (I7db38, b/436289959)SubspaceModifier.Node
के लिए एक बुनियादी इंटरफ़ेस जोड़ा गया है, ताकि एक्सटेंशन इंटरफ़ेस की टाइप सुरक्षा और इस्तेमाल को बेहतर बनाया जा सके. जैसे:CompositionLocalConsumerSubspaceModifierNode
LayoutCoordinatesAwareModifierNode
SubspaceLayoutModifierNode
CoreEntityNode
(internal) (Iede00, b/440599394, b/440599394)
- Unrestrict
SpatialExternalSurface
(I33315, b/439646773) - Subspace कंपोज़ेबल में
SubspaceModifier
को शामिल किया गया है. साथ ही, कंस्ट्रेंट पैरामीटर कोSubspaceModifier
से बदलकर, साइज़ से जुड़ेSubspaceModifiers
का इस्तेमाल किया गया है. अगरallowUnboundedSubspace
की वैल्यू 'सही है' पर सेट है, तो सबस्पेस में अब भी असीमित कंस्ट्रेंट हो सकते हैं. (Ib06e6, b/433331675) - अब
SubspaceModifiers
को बंद किया जा रहा है, क्योंकिDragPolicy()
औरResizePolicy()
,SpatialPanel
औरSpatialExternalSurface
एपीआई (I397bf, b/437924639) का हिस्सा हैं - स्पेशल लेआउट में
LayoutDirection
के लिए सहायता जोड़ी गई.SpatialAlignment
का इस्तेमाल करके कंपोज़ किए जा सकने वाले लेआउट, अब एलटीआर और आरटीएल, दोनों कॉन्टेक्स्ट में एलिमेंट को सही जगह पर रखेंगे. (I964bb, b/436300273) Panel
API में Resizable और Movable पैरामीटर जोड़ें, ताकि यह पक्का किया जा सके कि इन व्यवहारों को सिर्फ़ उन कंटेनर पर लागू किया जा सकता है जिनके साथ ये काम करते हैं. (Id491c)sizeIn
,widthIn
,heightIn
,depthIn
SubspaceModifiers
एट्रिब्यूट जोड़े गए हैं. इनकी मदद से, चौड़ाई, ऊंचाई, और गहराई के लिए कम से कम और ज़्यादा से ज़्यादा सीमाएं सेट की जा सकती हैं. (I1af09, b/433330761)
वर्शन 1.0.0-alpha06
13 अगस्त, 2025
androidx.xr.compose:compose:1.0.0-alpha06
और androidx.xr.compose:compose-testing:1.0.0-alpha06
रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- लाइफ़साइकल के मालिक के बंद होने पर,
ComposeXrOwnerLocals
को फिर से बनाएं. (9123ce1)
वर्शन 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)- बिना स्केल किए गए
GravityAlignedsubspace
औरGravityAligned
सुविधा (I07359) के लिए एपीआई उपलब्ध कराया गया
एपीआई में हुए बदलाव
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)Subspace
कंपोज़ेबल के साथ Compose केsetContent
का इस्तेमाल करने के लिए,setSubspaceContent
API को हटा दिया गया है. (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
कॉलबैक तब कॉल किए जाते हैं, जब उपयोगकर्ता, movable मॉडिफ़ायर के साथ कंपोज़ किए जा सकने वाले सबस्पेस को मूव करना शुरू और बंद करता है.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
कॉन्टेक्स्ट में किया जा सकता है. साथ ही, यह Orbiters को उनके सबसे नज़दीकी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 का इस्तेमाल करने से, कॉन्टेंट गलत दिशा में चला जाएगा.