इस्तेमाल करने का तरीका

Jetpack XR SDK की मदद से, Androidify को एक्सआर पर उपलब्ध कराना

पढ़ने में 9 मिनट लगेंगे
डेरेक ब्रिडी की प्रोफ़ाइल देखें
Dereck Bridie डेवलपर रिलेशंस इंजीनियर

Samsung Galaxy XR लॉन्च हो गया है. यह Android XR पर काम करता है! यह ब्लॉग पोस्ट, हमारी Android XR Spotlight Week का हिस्सा है. इसमें हम संसाधन उपलब्ध कराते हैं. जैसे, ब्लॉग पोस्ट, वीडियो, सैंपल कोड वगैरह. इन सभी को इस तरह डिज़ाइन किया गया है कि इनसे आपको Android XR के लिए ऐप्लिकेशन बनाने और उन्हें तैयार करने के बारे में जानकारी मिले.

Samsung Galaxy XR लॉन्च हो गया है. यह पहला डिवाइस है जो Android XR पर काम करता है. अब लोग Play Store पर मौजूद अपने पसंदीदा कई ऐप्लिकेशन को एक नए डाइमेंशन में इस्तेमाल कर सकते हैं: तीसरा डाइमेंशन!

तीसरा डाइमेंशन काफ़ी बड़ा है. इसमें आपके ऐप्लिकेशन के लिए भी काफ़ी जगह है. अपने ऐप्लिकेशन के लिए काम करने वाले टूल का इस्तेमाल करके, आज ही शुरुआत करें. उदाहरण के लिए, Kotlin और Compose जैसे Android के मॉडर्न डेवलपमेंट टूल का इस्तेमाल करके, Jetpack XR SDK की मदद से इमर्सिव एक्सआर अनुभव बनाए जा सकते हैं.

इस ब्लॉग पोस्ट में, हम आपको अपने अनुभव के बारे में बताएंगे. इसमें हम यह भी बताएंगे कि हमने अपने पसंदीदा Androidify ऐप्लिकेशन को एक्सआर पर कैसे उपलब्ध कराया. इसके अलावा, हम आपको यह भी बताएंगे कि आपके ऐप्लिकेशन को एक्सआर पर उपलब्ध कराने के लिए, किन बुनियादी बातों का ध्यान रखना होगा.

Androidify के बारे में जानकारी

Androidify एक ओपन सोर्स ऐप्लिकेशन है. इसकी मदद से, Android बॉट बनाए जा सकते हैं. इसके लिए, Gemini, CameraX, Navigation 3, और Jetpack Compose जैसी नई टेक्नोलॉजी का इस्तेमाल किया जाता है. Androidify को शुरुआत में, अडैप्टिव लेआउट बनाकर फ़ोन, फ़ोल्ड किए जा सकने वाले डिवाइसों, और टैबलेट पर बेहतर दिखने के लिए डिज़ाइन किया गया था.

customize.png

Androidify, अलग-अलग साइज़, डाइमेंशन या कॉन्फ़िगरेशन वाले डिवाइसों पर बेहतर दिखता है

अडैप्टिव लेआउट का एक अहम हिस्सा, दोबारा इस्तेमाल किए जा सकने वाले कंपोज़ेबल होते हैं. Jetpack Compose की मदद से, यूज़र इंटरफ़ेस (यूआई) के छोटे-छोटे कॉम्पोनेंट बनाए जा सकते हैं. इन्हें अलग-अलग तरीकों से लेआउट किया जा सकता है, ताकि उपयोगकर्ता को बेहतर अनुभव मिल सके. इससे कोई फ़र्क़ नहीं पड़ता कि उपयोगकर्ता किस तरह का डिवाइस इस्तेमाल कर रहा है. असल में, Androidify, Android XR के साथ काम करता है. इसके लिए, ऐप्लिकेशन में कोई बदलाव नहीं करना पड़ता!

customize_2.png

Androidify, कोड में कोई बदलाव किए बिना, बड़ी स्क्रीन के लिए बने रिस्पॉन्सिव लेआउट का इस्तेमाल करके, एक्सआर के हिसाब से काम करता है

Android XR के लिए खास तौर पर डिज़ाइन नहीं किए गए ऐप्लिकेशन को, सही साइज़ वाली विंडो में मल्टी-टास्क किया जा सकता है. ये ऐप्लिकेशन, बड़ी स्क्रीन पर काम करने वाले ऐप्लिकेशन की तरह ही काम करते हैं. इस वजह से, Androidify, Android XR पर बिना किसी अतिरिक्त काम के पूरी तरह से काम करता है! हालांकि, हम यहीं नहीं रुकना चाहते थे. इसलिए, हमने एक्सआर के लिए खास तौर पर डिज़ाइन किया गया एक ऐप्लिकेशन बनाया, ताकि एक्सआर के उपयोगकर्ताओं को बेहतर अनुभव मिल सके.

एक्सआर में खुद को ओरिएंट करना

आइए, Android XR के लिए बुनियादी कॉन्सेप्ट के बारे में जानते हैं. सबसे पहले, उन दो मोड के बारे में जानते हैं जिनमें ऐप्लिकेशन चलाए जा सकते हैं: होम स्पेस और फ़ुल स्पेस.

homespace.png
होम स्पेस में ऐप्लिकेशन
homespace2.png
फ़ुल स्पेस में ऐप्लिकेशन

होम स्पेस में, एक साथ कई ऐप्लिकेशन चलाए जा सकते हैं, ताकि उपयोगकर्ता अलग-अलग विंडो में मल्टी-टास्क कर सकें. इस मामले में, यह बड़ी स्क्रीन वाले Android डिवाइस पर डेस्कटॉप विंडो की तरह है. हालांकि, यह वर्चुअल स्पेस में होता है!

फ़ुल स्पेस में, ऐप्लिकेशन की कोई स्पेस बाउंड्री नहीं होती. साथ ही, यह Android XR की सभी स्पेशल सुविधाओं का इस्तेमाल कर सकता है. जैसे, स्पेशल यूज़र इंटरफ़ेस (यूआई) और वर्चुअल एनवायरमेंट को कंट्रोल करना.

ऐसा हो सकता है कि आपको अपना ऐप्लिकेशन सिर्फ़ फ़ुल स्पेस में चलाने का मन करे. हालांकि, आपके उपयोगकर्ता आपके ऐप्लिकेशन के साथ मल्टी-टास्क करना चाहें. इसलिए, दोनों मोड में ऐप्लिकेशन चलाने की सुविधा देने से, उपयोगकर्ता को बेहतर अनुभव मिलता है.

Androidify के नए डाइमेंशन के लिए डिज़ाइन करना

किसी भी ऐप्लिकेशन को बेहतर बनाने के लिए, उसका डिज़ाइन अच्छा होना चाहिए. Android DevRel में सीनियर डिज़ाइन एडवोकेट, आइवी नाइट ने Androidify के मौजूदा डिज़ाइन को एक्सआर के लिए नए डिज़ाइन में बदलने का काम किया. आइवी, अब आप अपनी बात रखें!

एक्सआर के लिए डिज़ाइन करने के लिए, एक अलग तरीके की ज़रूरत थी. हालांकि, इसमें मोबाइल के डिज़ाइन से काफ़ी समानताएं थीं. हमने कंटेनमेंट के बारे में सोचकर शुरुआत की. इसका मतलब है कि सबस्पेस में अपने यूज़र इंटरफ़ेस (यूआई) एलिमेंट को कैसे व्यवस्थित और ग्रुप किया जाए. इसके लिए, बाउंड्री साफ़ तौर पर दिखाई जा सकती हैं या उन्हें हल्के तौर पर दिखाया जा सकता है. हमने स्पेशल यूज़र इंटरफ़ेस (यूआई) एलिमेंट के अलग-अलग साइज़ का इस्तेमाल करना भी सीखा. ये एलिमेंट, उपयोगकर्ता के हिसाब से अडजस्ट और मूव होते हैं. Androidify की तरह, अडैप्टिव लेआउट का इस्तेमाल करके डिज़ाइन करें, ताकि स्पेशल यूज़र इंटरफ़ेस (यूआई) के लिए अपने लेआउट को हिस्सों में बांटा जा सके.

होम स्पेस के लिए डिज़ाइन करना

अच्छी बात यह है कि Android XR में, होम स्पेस के लिए अपने ऐप्लिकेशन को मौजूदा डिज़ाइन में ही इस्तेमाल किया जा सकता है. इसलिए, हमने विंडो टूलबार और फ़ुल स्पेस ट्रांज़िशन बटन जोड़कर, एक्सआर के लिए डिज़ाइन को बड़ा किया.

हमने हार्डवेयर की संभावित सुविधाओं और उपयोगकर्ता के साथ उनके इंटरैक्ट करने के तरीके पर भी विचार किया. Androidify के मोबाइल लेआउट, अलग-अलग पोज़, क्लास साइज़, और कैमरों की संख्या के हिसाब से अडैप्ट होते हैं, ताकि फ़ोटो के ज़्यादा विकल्प मिल सकें. इसी मॉडल के हिसाब से, हमें हेडसेट डिवाइसों के लिए कैमरा लेआउट को भी अडैप्ट करना पड़ा. हमें टेक्स्ट के लिए भी बदलाव करने पड़े, ताकि यूज़र इंटरफ़ेस (यूआई) के उपयोगकर्ता के पास होने पर भी टेक्स्ट ठीक से दिखे.

फ़ुल स्पेस के लिए डिज़ाइन करना

फ़ुल स्पेस के लिए डिज़ाइन में सबसे ज़्यादा बदलाव करने पड़े. हालांकि, इससे हमें अपने डिज़ाइन को अडैप्ट करने के लिए सबसे ज़्यादा क्रिएटिव स्पेस मिला.

tablet_to_xr.webp
टैबलेट से एक्सआर पर डिज़ाइन बदलना

Androidify, विज़ुअल कंटेनमेंट या पैन का इस्तेमाल करके, सुविधाओं को ग्रुप करता है. इसके लिए, बैकग्राउंड और आउटलाइन का इस्तेमाल किया जाता है. जैसे, "फ़ोटो लें या चुनें" पैन. हमने अन्य पैन को फ़्रेम करके, नैचुरल कंटेनमेंट बनाने के लिए, टॉप ऐप्लिकेशन बार जैसे कॉम्पोनेंट का भी इस्तेमाल किया. आखिर में, इंट्रिंसिक कंटेनमेंट का सुझाव, कुछ एलिमेंट के एक-दूसरे के पास होने से मिलता है. जैसे, "ट्रांसफ़ॉर्मेशन शुरू करें" बटन, जो "मेरे बॉट का रंग चुनें" पैन के पास है.

स्पेशल पैनल को आसानी से अलग किया जा सकता है. स्पेशल पैनल के लिए, मोबाइल के डिज़ाइन को अडैप्ट करने का तरीका जानने के लिए, सबसे पीछे वाली सतह से शुरू करके, सतहों को हटाने की कोशिश करें. इसके बाद, आगे बढ़ें. देखें कि कितने बैकग्राउंड हटाए जा सकते हैं और क्या बाकी रहता है. Androidify के लिए यह तरीका आज़माने के बाद, बड़ा हरा Android स्क्विगल बाकी रहा. स्क्विगल ने न सिर्फ़ ब्रैंडिंग मोमेंट और बैकग्राउंड के तौर पर काम किया, बल्कि 3D स्पेस में कॉन्टेंट के लिए ऐंकर के तौर पर भी काम किया.

इस ऐंकर को सेट अप करने से, यह समझना आसान हो गया कि एलिमेंट इसके आस-पास कैसे मूव कर सकते हैं. साथ ही, हम उपयोगकर्ता अनुभव के बाकी हिस्से को बेहतर बनाने और उसका अनुवाद करने के लिए, प्रॉक्सिमिटी का इस्तेमाल कैसे कर सकते हैं.

अपने ऐप्लिकेशन को स्पेशल बनाने के लिए डिज़ाइन से जुड़े अन्य सुझाव

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

एक्सआर यूज़र इंटरफ़ेस (यूआई) डिज़ाइन पैटर्न के बारे में ज़्यादा जानने के लिए, Android Developers पर Android XR के लिए डिज़ाइन करना लेख पढ़ें.

स्पेशल यूज़र इंटरफ़ेस (यूआई) की बुनियादी बातें

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

spatialrows.png

इन एलिमेंट को SpatialRows और SpatialColumns में व्यवस्थित किया गया है

यहां दिखाए गए स्पेशल एलिमेंट, SpatialPanel कंपोज़ेबल हैं. इनकी मदद से, टेक्स्ट, बटन, और वीडियो जैसे 2D कॉन्टेंट दिखाए जा सकते हैं.

Subspace {
    SpatialPanel(
        SubspaceModifier
            .height(824.dp)
            .width(1400.dp)
    ) {
        Text("I'm a panel!")
    }
}

SpatialPanel, एक सबस्पेस कंपोज़ेबल है. सबस्पेस कंपोज़ेबल को सबस्पेस में शामिल किया जाना चाहिए. साथ ही, इन्हें SubspaceModifier ऑब्जेक्ट से बदला जाता है. सबस्पेस को आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के क्रम में कहीं भी रखा जा सकता है. साथ ही, इनमें सिर्फ़ सबस्पेस कंपोज़ेबल शामिल किए जा सकते हैं.SubspaceModifier ऑब्जेक्ट भी Modifier ऑब्जेक्ट से काफ़ी मिलते-जुलते होते हैं. ये साइज़िंग और पोज़िशनिंग जैसे पैरामीटर को कंट्रोल करते हैं.

किसी Orbiter को SpatialPanelसे जोड़ा जा सकता है. साथ ही, यह उस कॉन्टेंट के साथ मूव हो सकता है जिससे इसे जोड़ा गया है. इनका इस्तेमाल अक्सर, उस कॉन्टेंट के बारे में कॉन्टेक्चुअल कंट्रोल देने के लिए किया जाता है जिससे इन्हें जोड़ा गया है. इससे कॉन्टेंट पर मुख्य फ़ोकस मिलता है. इन्हें कॉन्टेंट के चारों ओर, कॉन्फ़िगर की जा सकने वाली दूरी पर रखा जा सकता है.

orbiter.png
किसी Orbiter को SpatialPanel के सबसे नीचे जोड़ा गया है

स्पेशल यूज़र इंटरफ़ेस (यूआई) के कई और एलिमेंट भी हैं. हालांकि, Androidify के लिए स्पेशल लेआउट बनाने के लिए, हमने मुख्य तौर पर इन्हीं एलिमेंट का इस्तेमाल किया.

एक्सआर डेवलपमेंट शुरू करना

आइए, प्रोजेक्ट सेटअप से शुरुआत करते हैं. हमने Jetpack XR Compose डिपेंडेंसी जोड़ी है. यह आपको Jetpack XR डिपेंडेंसी वाले पेज पर मिलेगी.

हमने एक बटन के लिए कोड जोड़ा है. इससे उपयोगकर्ता को फ़ुल स्पेस में ले जाया जा सकता है. इसके लिए, सबसे पहले यह पता लगाया जाता है कि ऐसा किया जा सकता है या नहीं:

@Composable
fun couldRequestFullSpace(): Boolean =
   LocalSpatialConfiguration.current.hasXrSpatialFeature && 
   !LocalSpatialCapabilities.current.isSpatialUiEnabled
}

इसके बाद, हमने एक नया बटन कॉम्पोनेंट बनाया. इसमें, मौजूदा लेआउट में कॉन्टेंट को बड़ा करने वाले आइकॉन का इस्तेमाल किया गया. साथ ही, इसे onClick बिहेवियर दिया गया:

@Composable

fun RequestFullSpaceIconButton() {
   if (!couldRequestFullSpace()) return
   val session = LocalSession.current ?: return

   IconButton(
       onClick = {
           session.scene.requestFullSpaceMode()
       },
   ) {
       Icon(
           imageVector =  
               vectorResource(R.drawable.expand_content_24px),
           contentDescription = 
               stringResource("To Full Space"),
       )
   }
}

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

@Composable

fun HomeScreenContents(layoutType: HomeScreenLayoutType) {
   val layoutType = when {
      LocalSpatialCapabilities.current.isSpatialUiEnabled -> 
          HomeScreenLayoutType.Spatial
      isAtLeastMedium() -> HomeScreenLayoutType.Medium
      else -> HomeScreenLayoutType.Compact
   }

   when (layoutType) {
      HomeScreenLayoutType.Compact ->
          HomeScreenCompactPager(...)

      HomeScreenLayoutType.Medium ->
          HomeScreenMediumContents(...)

      HomeScreenLayoutType.Spatial ->
          HomeScreenContentsSpatial(...)
   }
}

होम स्क्रीन के लिए डिज़ाइन लागू करना

आइए, फ़ुल स्पेस में होम स्क्रीन के लिए स्पेशल डिज़ाइन पर वापस जाते हैं, ताकि यह समझा जा सके कि इसे कैसे लागू किया गया.

customize_3.png

यहां हमने दो SpatialPanel एलिमेंट की पहचान की है: एक पैनल, जिसमें दाईं ओर वीडियो कार्ड है. दूसरा पैनल, जिसमें मुख्य यूज़र इंटरफ़ेस (यूआई) है. आखिर में, सबसे ऊपर एक Orbiter जोड़ा गया है. आइए, वीडियो प्लेयर पैनल से शुरुआत करते हैं:

@Composable
fun HomeScreenContentsSpatial(...) {
   Subspace {
      SpatialPanel(SubspaceModifier
                   .fillMaxWidth(0.2f)
                   .fillMaxHeight(0.8f)
                   .aspectRatio(0.77f)
                   .rotate(0f, 0f, 5f),
      ) {
          VideoPlayer(videoLink)
      }
   }
}

हमने सामान्य लेआउट से 2D VideoPlayer कॉम्पोनेंट को, बिना किसी अतिरिक्त बदलाव के, SpatialPanel में फिर से इस्तेमाल किया! यह स्टैंडअलोन में इस तरह दिखता है:

bluetiel.png

मुख्य कॉन्टेंट पैनल के लिए भी यही तरीका अपनाया गया. हमने SpatialPanel में मीडियम पैनल कॉन्टेंट को फिर से इस्तेमाल किया.

SpatialPanel(SubspaceModifier.fillMaxSize(),
             resizePolicy = ResizePolicy(
                 shouldMaintainAspectRatio = true
             ),
             dragPolicy = MovePolicy()
) {
    Box {
        FillBackground(R.drawable.squiggle_full)
        HomeScreenSpatialMainContent(...)
    }
}

हमने इस पैनल को ResizePolicy दिया है. इससे पैनल के किनारों के पास कुछ हैंडल मिलते हैं, जिनकी मदद से उपयोगकर्ता पैनल का साइज़ बदल सकता है. इसमें MovePolicy भी है, जिसकी मदद से उपयोगकर्ता इसे ड्रैग कर सकता है.

customize_4.png

इन्हें एक ही सबस्पेस में रखने से, ये एक-दूसरे से अलग हो जाते हैं. इसलिए, हमने VideoPlayer पैनल को मुख्य कॉन्टेंट पैनल का चाइल्ड बनाया. इससे, मुख्य कॉन्टेंट पैनल को ड्रैग करने पर, पैरंट-चाइल्ड रिलेशनशिप की वजह से VideoPlayer पैनल भी मूव होता है.

@Composable
fun HomeScreenContentsSpatial(...) {
   Subspace {
       SpatialPanel(SubspaceModifier..., resizePolicy, dragPolicy) {
           Box {
               FillBackground(R.drawable.squiggle_full)
               HomeScreenSpatialMainContent(...)
           }
           Subspace {
              SpatialPanel(SubspaceModifier...) {
                  VideoPlayer(videoLink)
              }
           }
       }
   }
}

हमने पहली स्क्रीन इसी तरह बनाई!

अब अन्य स्क्रीन पर आते हैं

मैं अन्य स्क्रीन के बारे में भी संक्षेप में बताऊंगी. साथ ही, हर स्क्रीन के लिए किए गए खास बदलावों को हाइलाइट करूंगी.

fullspace.png
फ़ुल स्पेस में क्रिएशन स्क्रीन

यहां हमने SpatialRow और SpatialColumn कंपोज़ेबल का इस्तेमाल करके, ऐसा लेआउट बनाया है जो सुझाए गए व्यूइंग स्पेस के हिसाब से हो. इसके लिए, हमने मीडियम लेआउट से कॉम्पोनेंट को फिर से इस्तेमाल किया है.

fullspace_2.png

फ़ुल स्पेस में नतीजों की स्क्रीन: प्रॉम्प्ट की मदद से जनरेट किया गया बॉट: लाल रंग की बेसबॉल कैप, एविएटर सनग्लास, हल्के नीले रंग की टी-शर्ट, लाल और सफ़ेद रंग की चेकर्ड शॉर्ट्स, हरे रंग की फ़्लिप-फ़्लॉप, और टेनिस रैकेट पकड़ा हुआ है.


नतीजों की स्क्रीन पर, फ़ेदरिंग इफ़ेक्ट का इस्तेमाल करके, मुफ़्त में मिलने वाले कोट दिखाए जाते हैं. इससे वे स्क्रीन के किनारों के पास फ़ेड आउट हो जाते हैं. इसमें इस्तेमाल किए गए इनपुट को देखने के लिए, असल 3D ट्रांज़िशन का भी इस्तेमाल किया जाता है. इससे स्पेस में तस्वीर फ़्लिप हो जाती है.

Google Play Store पर पब्लिश करना

अब ऐप्लिकेशन, स्पेशल लेआउट के साथ एक्सआर के लिए तैयार है. इसलिए, हमने इसे Play Store पर रिलीज़ किया. हमने ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में एक आखिरी और अहम बदलाव किया है:

<!-- Androidify can use XR features if they're available; they're not required. -->
<uses-feature android:name="android.software.xr.api.spatial" 
              android:required="false" />

इससे Play Store को पता चलता है कि इस ऐप्लिकेशन में एक्सआर के लिए खास तौर पर डिज़ाइन की गई सुविधाएं हैं. साथ ही, एक बैज दिखता है, जिससे उपयोगकर्ताओं को पता चलता है कि ऐप्लिकेशन को एक्सआर को ध्यान में रखकर बनाया गया है:

androidify2.png
Android XR पर Google Play Store में Androidify इस तरह दिखता है


रिलीज़ अपलोड करते समय, हमें एक्सआर के लिए रिलीज़ करने के लिए किसी खास चरण की ज़रूरत नहीं होती. मोबाइल ट्रैक पर उपयोगकर्ताओं के लिए, उसी ऐप्लिकेशन को सामान्य तरीके से डिस्ट्रिब्यूट किया जाता है जैसे XR डिवाइस पर उपयोगकर्ताओं के लिए! हालांकि, आपके पास अपने ऐप्लिकेशन के एक्सआर के लिए खास तौर पर डिज़ाइन किए गए स्क्रीनशॉट जोड़ने या स्पेशल वीडियो ऐसेट का इस्तेमाल करके, अपने ऐप्लिकेशन का इमर्सिव प्रीव्यू अपलोड करने का विकल्प होता है. Android XR डिवाइसों पर, Play Store इसे अपने-आप इमर्सिव 3D प्रीव्यू के तौर पर दिखाता है. इससे उपयोगकर्ता, ऐप्लिकेशन इंस्टॉल करने से पहले, आपके कॉन्टेंट की गहराई और स्केल का अनुभव कर सकते हैं.

आज ही अपने अनुभव बनाना शुरू करें

Androidify, मौजूदा 2D Jetpack Compose ऐप्लिकेशन को स्पेशल बनाने का एक बेहतरीन उदाहरण है. आज हमने Androidify के लिए स्पेशल यूज़र इंटरफ़ेस (यूआई) डेवलप करने की पूरी प्रोसेस दिखाई. इसमें डिज़ाइन से लेकर कोड और पब्लिश करने तक की जानकारी शामिल है. हमने मौजूदा डिज़ाइन में बदलाव करके, उन्हें स्पेशल पैराडाइम के साथ काम करने के लिए तैयार किया. साथ ही, SpatialPanel और Orbiter कंपोज़ेबल का इस्तेमाल करके, स्पेशल लेआउट बनाए. ये लेआउट, उपयोगकर्ता के फ़ुल स्पेस में जाने पर दिखते हैं. आखिर में, हमने ऐप्लिकेशन का नया वर्शन Play Store पर रिलीज़ किया.

हमें उम्मीद है कि इस ब्लॉग पोस्ट से आपको यह समझने में मदद मिली होगी कि अपने ऐप्लिकेशन को Android XR पर कैसे उपलब्ध कराया जा सकता है! यहां कुछ और लिंक दिए गए हैं, जिनसे आपको मदद मिल सकती है:

लेखक:
पढ़ना जारी रखें