एक्सआर के लिए Jetpack Compose
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 3 दिसंबर, 2025 | - | - | - | 1.0.0-alpha09 |
डिपेंडेंसी का एलान करना
XR Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha09" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha09" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha09") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha09") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 1.0.0-alpha09
03 दिसंबर, 2025
androidx.xr.compose:compose:1.0.0-alpha09 और androidx.xr.compose:compose-testing:1.0.0-alpha09 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
LookAtUserऔर बिलबोर्ड मॉडिफ़ायर जोड़ना. इससे कॉन्टेंट हमेशा उपयोगकर्ता की ओर दिखेगा. (I49b99)- इसकी मदद से,
SpatialExternalSurfacesऔरSpatialPanelsके लिएInteractionPolicyसेट किया जा सकता है. इससे क्लिक और अन्य 3D इनपुट इवेंट का पता लगाया जा सकता है. (Iae155) - चौड़ाई, ऊंचाई, और गहराई को डीपी वैल्यू के तौर पर इस्तेमाल करके, साइज़ और
requiredSizeमॉडिफ़ायर ओवरलोड जोड़ा गया. (I92f79) ParentLayoutParamsModifierइंटरफ़ेस अबDelegatableSubspaceNodeतक बढ़ गया है. (I1a6d4)- Subspace API के पक्ष में
ApplicationSubspaceको बंद कर दिया गया है.- Subspace API के काम करने के तरीके में बदलाव किया गया है. अब यह सिर्फ़ सुझाए गए पोज़ और स्केल पर, ऐप्लिकेशन के लिए एक सबस्पेस उपलब्ध कराएगा.
PlanarEmbeddedSubspaceएपीआई को 2D कॉन्टेक्स्ट में एम्बेड किए गए सबस्पेस उपलब्ध कराने के लिए लॉन्च किया गया है. (Id3343)
SubspaceModifier.Nodeएपीआई मेंshouldAutoInvalidateफ़्लैग जोड़ा गया. (I93902)- ऐसे एपीआई में
required(Size|Width|Depth|Height)जोड़ा गया है जो डेवलपर को@SubspaceComposableके साइज़ को किसी खास रेंज तक सीमित करने की अनुमति देते हैं. इससे पैरंट के मेज़रमेंट से जुड़ी पाबंदियों को अनदेखा किया जा सकता है. (Ifaa78) SubspaceModifier.onSizeChangedजोड़ा गया है. यह डेवलपर को एक आसान और फ़ोकस किया गया कॉलबैक उपलब्ध कराता है, ताकि@SubspaceComposableका साइज़ बदलने पर वे कार्रवाई कर सकें. (I994f9)- वॉल्यूम एपीआई को हटा दिया गया है. वॉल्यूम एपीआई के बजाय,
SceneCoreEntityएपीआई का इस्तेमाल किया जाना चाहिए. (I4162b) SubspaceLayoutModifierNode.requestRelayoutकोinvalidateMeasurement/invalidatePlacementमें बांटें. (I14805)SpatialGltfModelएपीआई जोड़ा गया है. इसकी मदद से डेवलपर, कंपोज़ में glTF रेंडर कर सकते हैं. (Icc91f)- glTF को आसानी से रेंडर करने के लिए,
SpatialGltfModelकंपोज़ेबल एपीआई लॉन्च किया गया (Iade67)
गड़बड़ियां ठीक की गईं
SceneCoreEntityमें लेआउट से जुड़ी गड़बड़ी को ठीक किया गया है. अब यह अपनी सीमाओं का सही तरीके से पालन करेगा. (I11bb8)- jxr-compose मॉड्यूल को
Compile sdk = 34(I2d5db) पर डाउनग्रेड किया गया
वर्शन 1.0.0-alpha08
22 अक्टूबर, 2025
androidx.xr.compose:compose:1.0.0-alpha08 और androidx.xr.compose:compose-testing:1.0.0-alpha08 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
ResizePolicyको बदलकरonResizeStart,onResizeUpdate, औरonResizeEndको स्वीकार किया गया. (I7e21f)
गड़बड़ियां ठीक की गईं
- Subspace का इस्तेमाल करके किसी गतिविधि को बंद करते समय क्रैश होने से रोकें. (I595a1)
वर्शन 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के लिए एक बुनियादी इंटरफ़ेस जोड़ा गया है. जैसेCompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(internal) (Iede00, b/440599394, b/440599394)
- Unrestrict
SpatialExternalSurface(I33315, b/439646773) - Subspace कंपोज़ेबल में
SubspaceModifierको शामिल करें. साथ ही, कंस्ट्रेंट पैरामीटर कोSubspaceModifierसे बदलें और साइज़ से जुड़ेSubspaceModifiersको शामिल करें. अगरallowUnboundedSubspaceकी वैल्यू 'सही है' पर सेट है, तो सबस्पेस में अब भी असीमित कंस्ट्रेंट हो सकते हैं. (Ib06e6, b/433331675) - अब
SubspaceModifiersऔरResizePolicy(),SpatialPanelऔरSpatialExternalSurfaceएपीआई (I397bf, b/437924639) का हिस्सा हैं. इसलिए, अब मूव किए जा सकने वाले और साइज़ बदलने की सुविधा वालेSubspaceModifiersको बंद किया जा रहा हैDragPolicy() - स्पेशल लेआउट में
LayoutDirectionके लिए सहायता जोड़ी गई.SpatialAlignmentका इस्तेमाल करके कंपोज़ किए जा सकने वाले लेआउट, अब एलटीआर और आरटीएल, दोनों कॉन्टेक्स्ट में एलिमेंट को सही जगह पर रखेंगे. (I964bb, b/436300273) PanelAPI में Resizable और Movable पैरामीटर जोड़ें, ताकि यह पक्का किया जा सके कि इन व्यवहारों को सिर्फ़ उन कंटेनर पर लागू किया जा सकता है जिनके साथ ये काम करते हैं. (Id491c)sizeIn,widthIn,heightIn,depthInSubspaceModifiersएट्रिब्यूट जोड़े गए हैं. इनकी मदद से, चौड़ाई, ऊंचाई, और गहराई के लिए कम से कम और ज़्यादा से ज़्यादा सीमाएं सेट की जा सकती हैं. (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का इस्तेमाल करने के लिए,setSubspaceContentAPI को हटा दिया गया है. (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को अलग कर दिया गया है या फ़िलहाल अलग किया जा रहा है, तो ये इफ़ेक्ट लागू नहीं होंगे. - मौजूदा
SpatialRowAPI को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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- स्पेशल डायलॉग चालू होने पर, गतिविधि पैनल अब अपने कॉन्टेंट को स्क्रिम कर सकता है.
OrbiterAPI का इस्तेमाल अबSubspaceComposableकॉन्टेक्स्ट में किया जा सकता है. साथ ही, यह Orbiters को उनके सबसे नज़दीकीSubspaceLayout-आधारित कंपोज़ेबल पैरंट से जोड़ेगा.- कस्टम पोज़िशनिंग पर आधारित मॉडिफ़ायर की अनुमति देने के लिए,
LayoutCoordinatesAwareModifierNodeको लॉन्च किया गया. SubspaceModifier.Nodeमें अटैच/डिटैच लाइफ़साइकल के तरीके जोड़े गए.scaleWithDistanceको मूव किए जा सकने वाले मॉडिफ़ायर में जोड़ा गया.scaleWithDistanceचालू होने पर, सबस्पेस एलिमेंट को मूव करने पर वह बड़ा या छोटा हो जाएगा. साथ ही, यह पहले से तय किए गए स्केल को भी बनाए रखेगा.
एपीआई में हुए बदलाव
SpatialCapabilitiesके पक्ष मेंSessionCallbackProviderको हटा दिया गया.
दूसरे बदलाव
minSDKको घटाकर 24 कर दिया गया है. Jetpack XR के सभी एपीआई के लिए, रनटाइम के दौरान एपीआई 34 की ज़रूरत होती है.OrbiterEdgeOffset.inner,EdgeOffset.outer, औरEdgeOffset.overlapकंस्ट्रक्टर अब@Composableतरीके नहीं हैं. इसलिए, इनका इस्तेमाल कंपोज़ेबल नहीं किए जा सकने वाले कॉन्टेक्स्ट में किया जा सकता है.- स्पेशल एलिवेशन लेवल को अपडेट करें, ताकि वे यूज़र एक्सपीरियंस की नई खास बातों से मेल खाएं.
MeasurableLayoutमेंSubspaceSemanticsInfoइंटरफ़ेस लागू करें.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का इस्तेमाल करके, एक से ज़्यादा स्पेशल पैनल बनाए जा सकते हैं. साथ ही, उन्हें स्पेशल लेआउट में रखा जा सकता है. अपने लेआउट को पसंद के मुताबिक बनाने के लिए,SubspaceModifiers का इस्तेमाल करें.स्पेशल यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट: इन एलिमेंट का इस्तेमाल, 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 का इस्तेमाल करने से कॉन्टेंट गलत दिशा में चला जाएगा जिसे काफ़ी हद तक मूव किया गया है.