एक्सआर के लिए Jetpack Compose

Android XR की स्पेशल क्षमताओं का फ़ायदा लेने वाले स्पेशल यूज़र इंटरफ़ेस (यूआई) लेआउट को डिक्लेरेटिव तरीके से बनाएं.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
23 सितंबर, 2026 - - 1.0.0-beta01 -

डिपेंडेंसी का एलान करना

XR Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    implementation "androidx.xr.compose:compose:1.0.0-beta01"

    // Use to write unit tests
    testImplementation "androidx.xr.compose:compose-testing:1.0.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.xr.compose:compose:1.0.0-beta01")

    // Use to write unit tests
    testImplementation("androidx.xr.compose:compose-testing:1.0.0-beta01")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

संस्करण 1.0

वर्शन 1.0.0-beta01

23 सितंबर, 2026

androidx.xr.compose:compose:1.0.0-beta01 और androidx.xr.compose:compose-testing:1.0.0-beta01 रिलीज़ हो गए हैं. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • अब काम न करने वाले DragPolicy को हटाया गया. इसके बजाय, SubspaceModifier.movable() का इस्तेमाल करें. (I108d4)
  • अब काम नहीं करने वाले ResizePolicy को हटा दिया गया है. साथ ही, SpatialPanel और SpatialExternalSurface में इसके इस्तेमाल को भी हटा दिया गया है. SubspaceModifier.resizable फ़ंक्शन को हटाएं, जो अब इस्तेमाल में नहीं है. इसके बजाय, नए SubspaceModifier.resizable के साथ नए ResizePolicy का इस्तेमाल करें. (I59e6b)
  • isPitchUpdateEnabled पैरामीटर जोड़ा गया है, ताकि पिच ट्रैकिंग को अलग से चालू या बंद किया जा सके. (Ie9e86)
  • pitchLimits से nullability को हटाया गया और PitchLimits.UNCONSTRAINED का नाम बदलकर PitchLimits.FullRange कर दिया गया. (I0154f)
  • ExposedDropdownMenu अब सदस्य के बजाय, ExposedDropdownMenuBoxScope पर एक्सटेंशन फ़ंक्शन है. आपको नए इंपोर्ट के साथ अपना कोड अपडेट करना पड़ सकता है. (Ie8a65)
  • बंद की जा चुकी SurfaceProtection क्लास को हटा दिया गया है. इसके बजाय, SpatialExternalSurfaceProtection का इस्तेमाल करें. (Iab2c6)
  • Orbiter फ़ंक्शन में, OrbiterPoseProvider का इस्तेमाल करने वाले फ़ंक्शन को बंद कर दिया गया है. अब SpatialAlignment का इस्तेमाल किया जाता है. (I4d12b)
  • SpatialActivityPanel को अब एम्बेड की गई गतिविधियों को लॉन्च और मैनेज करने के लिए, SpatialActivityPanelController (rememberSpatialActivityPanelController का इस्तेमाल करके इंस्टैंटिएट किया गया) की ज़रूरत होती है. (Id25c6)
  • upDirection पैरामीटर को rotateToLookAtUser से हटा दिया गया है. साथ ही, रोटेशन की पाबंदियों वाले पैरामीटर (isYawUpdateEnabled और pitchLimits) जोड़े गए हैं. (I1370a)

गड़बड़ियां ठीक की गईं

  • InteractionPolicy से जुड़ी कई समस्याएं ठीक की गईं. अगर कंपोज़ेबल या चाइल्ड (जैसे कि ऑर्बिटर) के डिस्पोज़ल की प्रोसेस शुरू होने के दौरान कोई इनपुट इवेंट होता है, तो क्रैश हो जाता है. इस अपडेट में, उस समस्या को भी ठीक किया गया है जिसमें बच्चे को होवर इवेंट मिलते थे. (Ifc477)
  • छोटे फ़ील्ड ऑफ़ व्यू (एफ़ओवी) वाले डिवाइसों पर क्लिप होने से रोकने के लिए, RotateToLookAtUserActivity में पैनल का साइज़ कम किया गया. (I8d672)

मौजूदा समस्याएं

  • Compose XR पैनल में एक समस्या है. एक ही गतिविधि में कई पैनल बनाने से, पैनल बंद होने के बाद भी दिखने वाले कॉन्टेंट में कुछ गड़बड़ी हो सकती है.

वर्शन 1.0.0-alpha17

12 अगस्त, 2026

androidx.xr.compose:compose:1.0.0-alpha17 और androidx.xr.compose:compose-testing:1.0.0-alpha17 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha17 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Meter वैल्यू क्लास को हटाएं. इसे Scenecore में virtualPixelDensity से बदल दिया गया है. (I690ee)
  • SpatialGltfModel API अब एक्सपेरिमेंट के तौर पर उपलब्ध है. इसका इस्तेमाल करने के लिए, आपको ऑप्ट-इन करना होगा. (I4557e)
  • system को फिर से साइज़ बदलने लायक और शून्य हो सकने वाला बनाएं (Ib0093)
  • टेस्टिंग के लिए, SubspaceSemanticsInfo में Density को दिखाया गया. (I2e826)
  • ResizePolicy डिफ़ॉल्ट विकल्प का नाम बदलकर system कर दिया गया है. साथ ही, बिना पैरामीटर वाला नया Default विकल्प जोड़ा गया है (Ic8b16)
  • FollowTarget को एक्सपेरिमेंट के तौर पर मार्क करें. पूरा FollowingSubspace API अब एक्सपेरिमेंट के तौर पर उपलब्ध है. (Id4ee3)
  • GltfAnimation API हटाएं (Ic2894)
  • पैरामीटर वाले MovePolicy.default() तरीके का नाम बदलकर MovePolicy.system() कर दिया गया है. स्टैंडर्ड डिफ़ॉल्ट मूवमेंट के तरीके को दिखाने के लिए, val MovePolicy.Default प्रॉपर्टी जोड़ी गई है. (Iedcc9)
  • ExperimentalMoveAnchorPolicy के लिए ऑप्ट इन करने की ज़रूरी शर्तों को PlaneSemantic और PlaneOrientation तक बढ़ाना (Ief927)
  • VolumeConstraints.offset (Ib2f2f) से resetMins हटाया गया
  • अब इस्तेमाल में नहीं आने वाले SceneCoreEntitySizeAdapter फ़ंक्शन को हटाया गया. (Ib6722)
  • allowUnboundedSubspace के साथ, अब सेवा में नहीं रहे Subspace ओवरलोड को हटाया गया. (I8e97f)
  • सिमैंटिक मॉडिफ़ायर के ओवरलोड होने की वजह से, बंद किए गए फ़ंक्शन को हटा दिया गया है. (I4ac10)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जिसमें Composable के बच्चे, InteractionPolicy से जुड़े ट्रिगर इनपुट इवेंट (Icdba6) को ट्रिगर करते हैं

वर्शन 1.0.0-alpha16

15 जुलाई, 2026

androidx.xr.compose:compose:1.0.0-alpha16 और androidx.xr.compose:compose-testing:1.0.0-alpha16 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha16 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • ComponentOverride API हटाएं (I820c4)
  • GltfAnimation और SpatialGltfModelAnimation एपीआई को एक्सपेरिमेंटल के तौर पर मार्क किया गया है. कुछ प्रॉपर्टी को गेटर में बदल दिया गया है. (I8d689, b/524771027)
  • मीटर और पिक्सल के बीच कन्वर्ज़न को स्थिर करके, कुल डेनसिटी के व्यवहार को ठीक किया गया. Meter.kt को बंद कर दिया गया है. अब Session.scene.virtualPixelDensity का इस्तेमाल विकल्प के तौर पर किया जा सकता है. (I122ff, b/430097855, b/474168798)
  • दो मॉडिफ़ायर (I7fb0f, b/496257436, b/519672992) के बजाय ResizePolicy का इस्तेमाल करने के लिए, साइज़ बदलने वाले मॉडिफ़ायर को अपडेट करें
  • SubspaceAssertions.kt में, सभी सार्वजनिक फ़्लोटिंग-पॉइंट डाइमेंशन और पोज़िशन की समानता के दावे में Dp = Dp(0.5f) पैरामीटर जोड़ा गया. डिफ़ॉल्ट टॉलरेंस बिहेवियर (0.5.dp) के बारे में पूरी जानकारी दी गई है. (I266cb, b/521491915)
  • movePolicy पैरामीटर के साथ, मूव किए जा सकने वाले ओवरलोड को जोड़ा गया है. साथ ही, transformingMovable और movable को बंद कर दिया गया है (Ic88c1, b/481781189)
  • स्टैंडर्ड लिस्ट आइटम और सेगमेंट किए गए लिस्ट आइटम के नए नॉन-इंटरैक्टिव वैरिएंट जोड़े गए हैं. ये वैरिएंट, Material Expressive की खास बातों के मुताबिक हैं. नॉन-एक्सप्रेसिव वर्शन अब काम नहीं करता है. (Ide4de, b/491994186)
  • Subspace के लिए, allowUnboundedSubspace पैरामीटर का इस्तेमाल अब बंद कर दिया गया है और इसे छिपा दिया गया है. अब Subspace मॉडिफ़ायर पर SubspaceModifier.requiredSizeIn(maxWidth = Dp.Infinity, maxHeight = Dp.Infinity, maxDepth = Dp.Infinity) का इस्तेमाल करके, अनबाउंडेड व्यवहार हासिल किया जाना चाहिए. allowUnboundedSubspace पैरामीटर को FollowingSubspace से हटा दिया गया है. (Ia72ae, b/433624021)
  • Session.create को सस्पेंड फ़ंक्शन में बदल दिया गया है. (I5d27f)
  • SubspaceModifier.spatializedAudioOutput जोड़ा गया. इससे ExoPlayer या SoundEffectPlayer (I46697, b/489421980, b/497867019) के ज़रिए ऑडियो को स्पेशल बनाया जा सकता है
  • स्टेटस की पुष्टि के लिए, ComponentActivity.requestHomeSpace() और requestFullSpace() को अपडेट किया गया है, ताकि SpaceRequestResult को वापस लाया जा सके. (If1672)
  • AnchorEntity को AnchorSpace (Ifa95e, b/513619219) के तौर पर अपडेट किया गया
  • SpatialGltfModelSource (I1f5a1, b/503047416) से fromResource के लिए बिना पाबंदी वाली विधि
  • SubspaceSemanticsMatcher के सदस्य सार्वजनिक होते हैं: description प्रॉपर्टी, कंपैनियन फ़ैक्ट्री के तरीके (expectValue, keyIsDefined, keyNotDefined), सदस्य फ़ंक्शन (matches, matchesAny), और ऑपरेटर (and, or, not). (I972a4, b/460427288)
  • चुने गए स्पेशल सिमैंटिक्स टाइप का इस्तेमाल करने के लिए, SubspaceModifier.semantics, SubspaceModifier.testTag, SubspaceSemanticsInfo, SubspaceSemanticsModifierNode को अपडेट किया गया. (I80dea, b/460427288)
  • SpatialAlignment में position का नाम बदलकर align कर दिया गया है. साथ ही, अलग-अलग दिशा में ऑफ़सेट करने के तरीकों को हटाकर, एक ही align एपीआई का इस्तेमाल किया गया है. (I9bdb2, b/479805937)
  • SpatialConfiguration से, स्पेस मोड के बंद किए गए एपीआई हटा दिए गए हैं. (I1ef5c, b/458712461)
  • SubspaceSemanticsConfiguration को लॉन्च किया गया. यह किसी स्पैटियल नोड के लिए सिमैंटिक प्रॉपर्टी का कॉन्फ़िगरेशन है. यह क्लास, 3D सिमैंटिक के लिए क्वेरी के तरीकों को सुरक्षित तरीके से दिखाता है. साथ ही, बाहरी उपभोक्ताओं को 2D सिमैंटिक की बुनियादी क्षमताओं के बारे में जानकारी नहीं देता. (Id025e, b/460427288)
  • SubspaceSemanticsPropertyReceiver को लॉन्च किया गया: यह एक खास रैपर है. यह 3D लेआउट कंटेनर की प्रॉपर्टी को मान्य फ़ील्ड (शुरुआत में testTag और contentDescription) तक सीमित करता है. (I5cf5c, b/460427288)

गड़बड़ियां ठीक की गईं

  • सिमैंटिक मॉडिफ़ायर के hasContentDescription को अपडेट किया गया है, ताकि यह डिफ़ॉल्ट रूप से सबस्ट्रिंग मैचिंग पर सेट हो. (I08214)
  • पाबंदी वाला FollowBehavior.ExponentialDecay() जोड़ा गया है. यह इलास्टिक फ़िज़िक्स के हिसाब से, धीरे-धीरे फ़ॉलो करने की सुविधा देता है. (I7449c, b/485639909, b/500493335)

ज़्यादातर एपीआई पर इसका असर पड़ेगा. खास तौर पर, LocalSession CompositionLocal और LocalSession पर निर्भर सभी CompositionLocals (जैसे कि LocalSpatialConfiguration, LocalSpatialCapabilities वगैरह) अब Session के शुरू होने से पहले, null या इसके नॉन-एक्सआर वर्शन पर रीडायरेक्ट हो जाएंगे.

Session उपलब्ध होने के बाद, सही स्थिति के साथ रीकंपोज़िशन ट्रिगर हो जाएगा. (I0cfa4, b/514712835, b/514712835)

  • खाता निलंबित करने, रद्द करने, और एक साथ कई अनुरोध करने से जुड़े व्यवहार के बारे में, ComponentActivity.requestHomeSpace और ComponentActivity.requestFullSpace के दस्तावेज़ में ज़्यादा जानकारी दी गई है. CancellationException के प्रसार की पुष्टि करने के लिए, टेस्ट अपडेट किए गए. (I22f75, b/493289528)

वर्शन 1.0.0-alpha15

17 जून, 2026

androidx.xr.compose:compose:1.0.0-alpha15 और androidx.xr.compose:compose-testing:1.0.0-alpha15 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha15 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • ResizePolicy और साइज़ बदलने वाले पुराने मॉडिफ़ायर को बंद कर दिया गया है. इनकी जगह, SubspaceModifier.resizable ओवरलोड और SubspaceModifier.transformingResizable का इस्तेमाल किया जा सकेगा. (I9e4bc)
  • SpatialGltfModel एपीआई अपडेट किए गए: SpatialGltfModelSource के ज़रिए संसाधनों से मॉडल लोड करने की सुविधा जोड़ी गई है.fromResource. SpatialGltfModelAnimation में स्पीड का नाम बदलकर playbackSpeed कर दिया गया है. साथ ही, resume() तरीका जोड़ा गया है. SpatialGltfModelStatus.Loaded और Loading अब ऑब्जेक्ट हैं. (I523de)
  • rotateToLookAtUser को एक्सपेरिमेंटल एपीआई के तौर पर मार्क किया गया है. (I86c16)
  • सुरक्षित वैरिएबल targetCurrentPose को लोकल वैरिएबल currentTargetPoseMeter में ले जाया गया और उसका नाम बदल दिया गया. (Ia557c)
  • SpatialPanel और SpatialExternalSurface के दस्तावेज़ों को अपडेट करें, ताकि यह जानकारी शामिल की जा सके कि ऑब्जेक्ट को लेआउट के साइज़ (I72104) में कहां रेंडर किया गया है
  • SpatialGltfModelState में SpatialGltfModel लोडिंग लॉजिक को शामिल किया गया है. साथ ही, गड़बड़ी होने पर क्या होगा, इसके बारे में बताया गया है. (Ibe98b)
  • SubspaceModifer.size kdocs (I0f84f) में depth के बारे में ज़्यादा जानकारी दी गई

वर्शन 1.0.0-alpha14

19 मई, 2026

androidx.xr.compose:compose:1.0.0-alpha14 और androidx.xr.compose:compose-testing:1.0.0-alpha14 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha14 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • सिस्टम की ओर से हैंडल की जाने वाली 3D मूवमेंट के लिए, transformingMovable को पेश किया गया है. साथ ही, कस्टम मूवमेंट के लिए movable के लिए एक नया ओवरलोड पेश किया गया है. (I50960)
  • SpatialGltfModel.fromData() हटाया गया. (I4d083)
  • एक नया मॉडिफ़ायर नोड इंटरफ़ेस, SubspaceMeasuredSizeAwareModifierNode जोड़ा गया है. यह मेज़र पास के बाद onRemeasured कॉलबैक उपलब्ध कराता है. SubspaceLayoutAwareModifierNode अब इस नए इंटरफ़ेस के साथ उपलब्ध है. onSizeChanged मॉडिफ़ायर को अपडेट करके onRemeasured का इस्तेमाल किया गया है. इससे यह पक्का होता है कि मेज़रमेंट के तुरंत बाद कॉलबैक ट्रिगर हो, न कि प्लेसमेंट के बाद. (Iafbae)
  • InteractionPolicy को Interface (I0ff30) में अपडेट किया गया
  • Compose compileSdk को एपीआई 37 पर अपडेट किया गया. इसका मतलब है कि Compose का इस्तेमाल करने के लिए, AGP का कम से कम 9.2.0 वर्शन होना ज़रूरी है. (Id45cd)
  • Size kdocs अपडेट किए गए (Iefa9a)

वर्शन 1.0.0-alpha13

6 मई, 2026

androidx.xr.compose:compose:1.0.0-alpha13 और androidx.xr.compose:compose-testing:1.0.0-alpha13 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha13 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Orbiter API में कुछ और बदलाव होने बाकी हैं. हमारा सुझाव है कि आप Orbiter के लिए, बंद होने की सूचनाओं को छिपाएं. साथ ही, आने वाले वर्शन में Orbiter से जुड़े बदलावों पर नज़र रखें.
  • glTF को रेंडर करने के लिए SceneCoreEntity का इस्तेमाल करने वाले लोगों को यह पक्का करना चाहिए कि वे GltfModel.create कॉल के parent पैरामीटर को session.scene.activitySpace पास कर रहे हों, ताकि उनके glTF रेंडर हो सकें.
  • SpatialGltfModel API जोड़ा गया है, ताकि डेवलपर अपने Compose For XR ऐप्लिकेशन में Gltf जोड़ सकें. डेवलपर, अपने Gltf मॉडल में मौजूद ऐनिमेशन और नोड के बारे में भी क्वेरी कर सकते हैं. (I8b542, b/495422586)
  • क्लास से इंटरफ़ेस में SceneCoreEntitySizeAdapter बदलाव (I5a784, b/475292310)
  • SurfaceProtection का नाम बदलकर SpatialExternalSurfaceProtection कर दिया गया. SpatialExternalSurface kdocs (Ifad0a, b/485231082) अपडेट किए गए
  • currentWindowAdaptiveInfo को बंद किया गया और इसका V2 वर्शन लॉन्च किया गया (I40ecf, b/424442112)
  • resizable मॉडिफ़ायर अब सार्वजनिक तौर पर उपलब्ध है और ग्रुप पर लागू होता है. जैसे, SpatialRow. (I2bcf6, b/348483527, b/489753178, b/479530787)
  • movable मॉडिफ़ायर अब सार्वजनिक तौर पर उपलब्ध है. फ़िलहाल, यह मॉडिफ़ायर SpatialPanels और SpatialExternalSurface के लिए अच्छी तरह से काम करता है. हालांकि, हमारा मकसद यह है कि यह सभी SubspaceComposables के लिए अच्छी तरह से काम करे. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • SpatialEnterTransition और SpatialExitTransition को @Immutable के तौर पर मार्क किया गया (If1710, b/487757837)
  • SpatialGltfModel एपीआई को इस रिलीज़ के लिए, पाबंदी वाला एपीआई के तौर पर मार्क किया गया है. ऐसा तब तक रहेगा, जब तक इसकी टेस्टिंग पूरी नहीं हो जाती. (Ibf003, b/466090694)
  • DeviceTrackingMode.LAST_KNOWN का नाम बदलकर SPATIAL_LAST_KNOWN कर दिया गया है. हालांकि, अब भी इसका इस्तेमाल किया जा सकता है. साथ ही, 3DoF ट्रैकिंग के लिए INERTIAL_LAST_KNOWN जोड़ा गया है. इसके अलावा, TRACKING_DEGRADED को TrackingState में जोड़ा गया है. (Ie661c, b/445466590)
  • अब काम न करने वाले SpatialLayoutSpacer (I7b36c) को हटाया जा रहा है
  • पैडिंग एपीआई (If1886) को हटाया जा रहा है
  • पूर्वाग्रह की वैल्यू में floatRange जोड़ा गया. LayoutDirection (I9d74e) एट्रिब्यूट की डिफ़ॉल्ट वैल्यू हटाई गई

गड़बड़ियां ठीक की गईं

  • SpatialColumn, SpatialRow, और SpatialCurvedRow के लिए कोड सैंपल और KDoc दस्तावेज़ जोड़े गए. (Iaf54f, b/495777633)

वर्शन 1.0.0-alpha12

25 मार्च, 2026

androidx.xr.compose:compose:1.0.0-alpha12 और androidx.xr.compose:compose-testing:1.0.0-alpha12 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha12 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • glTF रेंडर करने और ऐनिमेशन कंट्रोल करने के लिए, SpatialGltfModel एपीआई और SpatialGltfModelAnimation एपीआई जोड़ें. SpatialGltfModelState को बदलकर AutoCloseable कर दिया गया है. अब इसकी मेमोरी को खाली करने के लिए, इसे बंद करना होगा. (I11fde, b/466065486, b/481379924). हालांकि, इस रिलीज़ के लिए SpatialGltfModel एपीआई को प्रतिबंधित के तौर पर मार्क किया गया है. ऐसा तब तक रहेगा, जब तक इसकी और टेस्टिंग नहीं हो जाती. (Ibf003, b/466090694)
  • SubspaceModifier.rotate के लिए, इस्तेमाल में नहीं है ऐसा खाली ओवरलोड जोड़ा गया. (Idceb6)
  • SpatialSmoothFeatheringEffect फ़ंक्शन का नाम बदलकर spatialSmoothFeatheringEffect कर दिया गया है. साथ ही, इसे ड्रॉ मॉड्यूल में ले जाया गया है. SpatialExternalSurface की डिफ़ॉल्ट फ़ेदरिंग वैल्यू को शून्य पर अपडेट किया गया है. इससे ZeroFeatheringEffect की पुरानी सुविधा मिलती है. (I5fdaa, b/460426800)
  • onPointSourceParamsAvailable को हटाया गया. आने वाले समय में, ऑडियो स्पेशललाइज़ेशन का कोई दूसरा एपीआई उपलब्ध होगा. (I86507, b/458513439)
  • ऑफ़सेट सबस्पेस मॉडिफ़ायर के लिए, आरटीएल बिहेवियर जोड़ा गया. लेआउट की दिशा को अनदेखा करने के लिए, absoluteOffset भी जोड़ा गया. (I30e4b, b/474409165)

वर्शन 1.0.0-alpha11

25 फ़रवरी, 2026

androidx.xr.compose:compose:1.0.0-alpha11 और androidx.xr.compose:compose-testing:1.0.0-alpha11 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha11 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • SpatialExternalSurfaces (Icd4d1) में SuperSampling पैरामीटर जोड़ा गया

मौजूदा समस्याएं

  • SceneCore में SurfaceEntity से जुड़ी समस्या की वजह से, SpatialExternalSurface के इंस्टेंस बनाते समय ऐप्लिकेशन क्रैश हो सकते हैं. इस समस्या को androidx.xr.scenecore:scenecore-*:1.0.0-alpha13, androidx.xr.compose:compose:1.0.0-alpha12, और इनके बाद के वर्शन में ठीक कर दिया गया है. जिन ऐप्लिकेशन पर असर पड़ा है उन्हें नए वर्शन पर अपडेट किया जाना चाहिए.

एपीआई में हुए बदलाव

  • लेआउट की दिशा के बारे में जानकारी देने के लिए, सबस्पेस मॉडिफ़ायर की पैडिंग में बदलाव किए गए हैं. (I53e25)
  • SpatialCapabilities अब सील कर दिया गया है और इसे बढ़ाया नहीं जा सकता. (I07aef)
  • SpatialRow और SpatialColumn एपीआई, अब काम नहीं करते. ये एपीआई, सामान्य SpatialAlignment पैरामीटर स्वीकार करते थे. इसके बजाय, ऐसे एपीआई का इस्तेमाल करें जो SpatialRow और SpatialColumn के लिए, क्रमशः verticalAlignment या horizontalAlignment स्वीकार करते हैं. (Iec390)
  • ओवरलोडिंग SubspaceLayout फ़ंक्शन एपीआई (Idd30a) को कंबाइन करना
  • SubspaceModifier.lookAtUser का नाम बदलकर rotateToLookAtUser और up पैरामीटर का नाम बदलकर upDirection कर दिया गया है. (Icafb8)
  • SpatialRow को इनलाइन फ़ंक्शन (Ia2f20) बनाना
  • SpatialColumn को इनलाइन फ़ंक्शन बनाना (I681be)
  • बिलबोर्ड API (Ib76cd) हटाया गया

वर्शन 1.0.0-alpha10

28 जनवरी, 2026

androidx.xr.compose:compose:1.0.0-alpha10 और androidx.xr.compose:compose-testing:1.0.0-alpha10 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha10 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • बंद किए गए एपीआई को हटाया जा रहा है - ApplicationSubspace (Ia6596, b/468345186)
  • SpatialShape को सील किए गए इंटरफ़ेस (I7e3f5, b/460426800) में अपडेट किया गया
  • SpatialAlignment में, पाबंदी वाले एपीआई हटाए जा रहे हैं. (Ib0b61, b/468011887)
  • SpatialLayoutSpacer को बंद किया जा रहा है और SpatialSpacer को लॉन्च किया जा रहा है. (I2ebf3, b/466071383)
  • UserSubspace एपीआई को अपडेट किया गया है, ताकि "लेज़ी लॉकिंग" शब्द को "सॉफ़्ट लॉकिंग" से बदला जा सके. (I9ded1, b/464035984)

वर्शन 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 को इसलिए पेश किया गया है, ताकि SpatialRow और SpatialColumn जैसे 3D लेआउट में बच्चों को मुख्य ऐक्सिस के साथ व्यवस्थित किया जा सके. इस नए एपीआई में, 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 को शामिल किया गया है. साथ ही, साइज़ से जुड़े SubspaceModifiers के साथ, कंस्ट्रेंट पैरामीटर को SubspaceModifier से बदल दिया गया है. अगर allowUnboundedSubspace की वैल्यू 'सही है' पर सेट है, तो भी सबस्पेस में असीमित कंस्ट्रेंट हो सकते हैं. (Ib06e6, b/433331675)
  • DragPolicy() और ResizePolicy() अब SpatialPanel और SpatialExternalSurface एपीआई (I397bf, b/437924639) का हिस्सा हैं. इसलिए, अब मूव किए जा सकने वाले और साइज़ बदलने की सुविधा वाले SubspaceModifiers को बंद किया जा रहा है
  • स्पेशल लेआउट में LayoutDirection के लिए सहायता जोड़ी गई. SpatialAlignment का इस्तेमाल करके कंपोज़ किए जा सकने वाले कॉम्पोनेंट, अब एलटीआर और आरटीएल, दोनों कॉन्टेक्स्ट में एलिमेंट को सही जगह पर रखेंगे. (I964bb, b/436300273)
  • Panel एपीआई में, साइज़ बदलने और जगह बदलने वाले पैरामीटर जोड़ें, ताकि यह पक्का किया जा सके कि इन सुविधाओं को सिर्फ़ उन कंटेनर पर लागू किया जा सकता है जिनके साथ ये काम करती हैं. (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)
  • SceneCore और Compose for XR के बीच इंटरऑपरेबिलिटी को बेहतर बनाने के लिए, SceneCoreEntity एपीआई जोड़ा गया. (I50bb3, b/423020989)
  • बिना स्केल किए गए और GravityAligned सुविधा (I07359) के लिए, GravityAlignedsubspace एपीआई उपलब्ध कराया गया

एपीआई में हुए बदलाव

  • 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)
  • I2dbe6, b/427785338 में हार्ड कोड किए गए साइज़ का इस्तेमाल बंद करने के लिए, SpatialElevation को अपडेट करें, ताकि कम से कम साइज़ का इस्तेमाल किया जा सके
  • SpatialAcitivityPanel को अपडेट करने के लिए, हम कैसे स्क्रिम करते हैं, ताकि मुख्य वैरिएबल में बदलाव होने पर उसे अपडेट किया जा सके. (I0f64d, b/427999029)
  • डिफ़ॉल्ट कंस्ट्रेंट वैल्यू को बराबर पर सेट करने के लिए, VolumeConstraints.Unbounded हटाएं. (Ie24ec, b/407938414)
  • SpatialFeatheringSize अब सार्वजनिक नहीं है (I1c15b, b/399432430)
  • XR Placeable का नाम बदलकर SubspacePlaceable कर दिया गया है, ताकि इसे Compose के Placeable से अलग किया जा सके. (I74874)
  • Orbiter की सेटिंग हटा दी गई हैं और shouldRenderInNonSpatial को नए पैरामीटर के तौर पर जोड़ा गया है. इसके अलावा, क्लास EdgeOffset को हटा दिया गया है और orbiterOffsetType को एक नए पैरामीटर के तौर पर जोड़ा गया है, ताकि Orbiter() फ़ंक्शन को एक साथ इस्तेमाल किया जा सके. साथ ही, OrbiterEdge का नाम बदलकर ContentEdge कर दिया गया है. (Iebf3d)
  • टाइप को Compose के Measurable टाइप से अलग करने के लिए, Measurable का नाम बदलकर SubspaceMeasurable कर दिया गया है. (I9726c)
  • MeasureResult का नाम बदलकर SubspaceMeasureResult किया गया (I9f34d)
  • Subspace कंपोज़ेबल के साथ Compose के setContent का इस्तेमाल करने के लिए, setSubspaceContent एपीआई को हटा दिया गया है. (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 एपीआई को SpatialRow और SpatialCurvedRow में बांट दिया गया है. अगर आपने पहले SpatialRow के curveRadius पैरामीटर का इस्तेमाल किया था, तो अब SpatialCurvedRow का इस्तेमाल करें. यह पैरामीटर भी उसी तरह काम करता है.
  • MainPanel और ActivityPanel को हाल ही के सिस्टम इमेज पर चलाने पर, अब इनमें टाइटल बार नहीं दिखते.
  • ऐल्फ़ा और स्केल मॉडिफ़ायर को अब स्टैक किया जा सकता है. साथ ही, ये ऐल्फ़ा या स्केल की फ़ाइनल वैल्यू के लिए अपनी वैल्यू को गुणा करेंगे.
  • मूवेबल मॉडिफ़ायर से मिलने वाले onPoseChange कॉलबैक को ऑप्टिमाइज़ किया गया है, ताकि पोज़ को आसानी से बदला जा सके.
  • अब मूव किए जा सकने वाले और साइज़ बदलने वाले मॉडिफ़ायर, मुख्य थ्रेड पर अपने कॉलबैक को पूरा करेंगे. इससे यह पक्का किया जा सकेगा कि स्थिति में बदलाव होने पर, दोबारा कंपोज़िशन ट्रिगर हो.
  • लेआउट और मेज़रमेंट फ़ेज़ में स्टेट ऑब्ज़र्वेशन जोड़ा गया है, ताकि यह पक्का किया जा सके कि SubspaceLayout में स्टेटस बदलने पर, लेआउट फिर से ट्रिगर हो जाएगा.
  • मॉडिफ़ायर चेन को ऑप्टिमाइज़ किया गया है, ताकि मौजूदा मॉडिफ़ायर का बेहतर तरीके से फिर से इस्तेमाल किया जा सके.

गड़बड़ियां ठीक की गईं

  • SpatialDialog दिखाए जाने पर, स्क्रिमिंग बंद कर दी गई. (Ic4594)
  • मॉडिफ़ायर नोड के अलग होने पर, लेआउट में बदलाव करने के अनुरोधों को अब अनदेखा कर दिया जाएगा.
  • मूव किए जा सकने वाले और साइज़ बदलने वाले मॉडिफ़ायर की वजह से ट्रिगर होने वाले रीलआउट फ़ेज़ हटा दिए गए हैं.
  • 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 एपीआई का इस्तेमाल अब SubspaceComposable कॉन्टेक्स्ट में किया जा सकता है. साथ ही, यह ऑर्बिटर को उनके सबसे नज़दीकी SubspaceLayout-आधारित कंपोज़ेबल पैरंट से अटैच करेगा.
  • कस्टम पोज़िशनिंग पर आधारित मॉडिफ़ायर की अनुमति देने के लिए, LayoutCoordinatesAwareModifierNode को लॉन्च किया गया.
  • SubspaceModifier.Node में अटैच/डिटैच करने के लाइफ़साइकल के तरीके जोड़े गए.
  • मूवेबल मॉडिफ़ायर में scaleWithDistance जोड़ा गया. scaleWithDistance चालू होने पर, सबस्पेस में ले जाए गए एलिमेंट का साइज़ बढ़ या घट जाएगा. साथ ही, यह उस स्केल को भी बनाए रखेगा जो पहले से मौजूद था.

एपीआई में हुए बदलाव

  • SessionCallbackProvider को हटाकर SpatialCapabilities को शामिल किया गया.

दूसरे बदलाव

  • minSDK को घटाकर 24 कर दिया गया. Jetpack XR के सभी एपीआई को रनटाइम के दौरान, एपीआई 34 की ज़रूरत होती है.
  • Orbiter EdgeOffset.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 की डेवलपर के लिए शुरुआती रिलीज़. एक्सआर में स्पैटियल यूज़र इंटरफ़ेस (यूआई) लेआउट बनाने के लिए, Compose के जाने-पहचाने कॉन्सेप्ट का इस्तेमाल करें. जैसे, लाइनें और कॉलम. इससे कोई फ़र्क़ नहीं पड़ता कि आपको किसी मौजूदा 2D ऐप्लिकेशन को एक्सआर में पोर्ट करना है या नया एक्सआर ऐप्लिकेशन बनाना है. यह लाइब्रेरी, सबस्पेस और स्पेशल कंपोज़ेबल उपलब्ध कराती है. जैसे, स्पेशल पैनल और ऑर्बिटर. इनकी मदद से, अपने मौजूदा 2D कंपोज़ या व्यू पर आधारित यूज़र इंटरफ़ेस को स्पेशल लेआउट में रखा जा सकता है. इसमें Volume सबस्पेस कंपोज़ेबल को पेश किया गया है. इसकी मदद से, SceneCore की इकाइयों को यूज़र इंटरफ़ेस (यूआई) के हिसाब से रखा जा सकता है. जैसे, 3D मॉडल. इस डेवलपर गाइड में ज़्यादा जानें:

    • Subspace: इस कंपोज़ेबल को आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के किसी भी हिस्से में रखा जा सकता है. इससे आपको फ़ाइलों के बीच कॉन्टेक्स्ट को बनाए रखते हुए, 2D और स्पेशल यूज़र इंटरफ़ेस (यूआई) के लिए लेआउट बनाए रखने में मदद मिलती है. इससे, XR और अन्य डिवाइसों के साइज़, डाइमेंशन या कॉन्फ़िगरेशन के बीच मौजूदा ऐप्लिकेशन आर्किटेक्चर जैसी चीज़ें शेयर करना आसान हो जाता है. इसके लिए, आपको अपने पूरे यूज़र इंटरफ़ेस (यूआई) ट्री में स्टेट को ऊपर ले जाने या अपने ऐप्लिकेशन को फिर से आर्किटेक्ट करने की ज़रूरत नहीं होती.

    • 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 का इस्तेमाल किया जाता है जिसे काफ़ी हद तक मूव किया गया है, तो कॉन्टेंट गलत दिशा में चला जाएगा.