तरीका बताने वाले लेख

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


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

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

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

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

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