एक्सआर के लिए Jetpack Compose
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 22 अक्टूबर, 2025 | - | - | - | 1.0.0-alpha08 |
डिपेंडेंसी का एलान करना
XR Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha08" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha08" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha08") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha08") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 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को बंद किया जा रहा है, क्योंकिDragPolicy()औरResizePolicy(),SpatialPanelऔरSpatialExternalSurfaceएपीआई (I397bf, b/437924639) का हिस्सा हैं - स्पेशल लेआउट में
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कॉलबैक तब कॉल किए जाते हैं, जब उपयोगकर्ता, movable मॉडिफ़ायर के साथ कंपोज़ किए जा सकने वाले सबस्पेस को मूव करना शुरू और बंद करता है.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: स्पेशल ऑडियो
ऐसी समस्याएं जिनके बारे में जानकारी पहले से है
- फ़िलहाल, एक्सआर के लिए 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 का इस्तेमाल करने से कॉन्टेंट गलत दिशा में चला जाएगा जिसे काफ़ी हद तक मूव किया गया है.