ऐप्लिकेशन फ़ाउंडेशन

रिमोट कंपोज़ की मदद से, इंटरैक्टिव सरफ़ेस को बेहतर बनाना

स्पीकर

  • Nicolas Roard

    सीनियर स्टाफ़ सॉफ़्टवेयर इंजीनियर

  • जॉन हॉफ़र्ड

    डेवलपर

  • जॉन ज़ोलर

    डेवलपर रिलेशंस इंजीनियर

इसके बारे में

बातचीत के बारे में जानकारी

Remote Compose, विजेट जैसी रिमोट सरफ़ेस पर, एक्सप्रेसिव और इंटरैक्टिव यूज़र इंटरफ़ेस (यूआई) को प्रोजेक्ट करने का एक नया तरीका है. RemoteCompose, लेआउट को छोटे बाइनरी पेलोड में क्रम से लगाकर, यूज़र इंटरफ़ेस (यूआई) को होस्ट के एक्ज़ीक्यूशन से अलग करता है. इससे कई फ़ायदे मिलते हैं.

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

इस सेशन में, इन फ़ायदों के बारे में बताया गया है. साथ ही, लाइव प्रोडक्शन के उदाहरण दिए गए हैं. इनमें Wear OS के आधुनिक विजेट और Runkeeper में Wear Workout Tracker का अनुभव शामिल है.

खास जानकारी

  • Remote Compose, यूज़र इंटरफ़ेस (यूआई) को एक छोटे बाइनरी दस्तावेज़ में पैकेज करता है. इससे, प्रोसेस की सीमाओं के पार ऐप्लिकेशन या स्क्रीन की कॉपी भेजने की ज़रूरत नहीं पड़ती.
  • डेवलपर, Compose API या JSON का इस्तेमाल करके दस्तावेज़ बनाते हैं. Android Studio, कंपोज़ेबल लिखते समय लाइव झलक दिखाता है.
  • अपलोड किए गए दस्तावेज़, प्लेयर पर अपने-आप चलते हैं. ये साइज़ बदलने और टच करने जैसे इवेंट को हैंडल करते हैं. इसके लिए, इन्हें अपने क्रिएटर के पास दोतरफ़ा यात्रा नहीं करनी पड़ती.
  • पहले से मौजूद ऑप्टिमाइज़ेशन, जैसे कि कॉम्पोनेंट टेंप्लेट और दस्तावेज़ को कंप्रेस करने की सुविधा, पेलोड को कुछ किलोबाइट तक कम कर देती है.
  • Jetpack Glance, लॉन्चर विजेट और Wear OS विजेट के लिए, Remote Compose दस्तावेज़ जनरेट करता है. इससे यूआई, ऐप्लिकेशन के चलने से अलग हो जाता है, ताकि बैटरी बचाई जा सके.

संसाधन

Gemini Notebook

विषय

  • remote-compose
  • jetpack-compose
  • android-widgets
  • wear-os
  • ui-framework

ट्रांसक्रिप्ट

ट्रांसक्रिप्ट डाउनलोड करें

रिमोट सरफ़ेस के बारे में जानकारी और खास जानकारी

  • नमस्ते.

  • मेरा नाम निकोलस रोआर्ड है. मैं रिमोट कंपोज़ प्रोजेक्ट का टेक लीड हूं.

  • मैं जॉन हॉफ़र्ड हूं.

  • मैं Remote Compose का डेवलपर हूं.

  • मैं जॉन ज़ोलर हूं. मैं Wear OS पर डेवलपर रिलेशंस का काम करता हूं.

  • आइए, शुरू करते हैं।

  • इसलिए, सबसे पहले मैं आपको इस बारे में खास जानकारी दूंगा कि हम रिमोट कंपोज़ की मदद से किस तरह की समस्या को हल करने की कोशिश कर रहे हैं.

  • आम तौर पर, जब Android पर यूज़र इंटरफ़ेस (यूआई) के बारे में बात की जाती है या सोचा जाता है, तो यूज़र इंटरफ़ेस (यूआई) को ऐप्लिकेशन और ऐप्लिकेशन प्रोसेस के हिस्से के तौर पर देखा जाता है, है न?

  • कई बार आपको अपने यूज़र इंटरफ़ेस (यूआई) को पैकेज करके, किसी दूसरी जगह पर भेजना होता है. जैसे, किसी रिमोट प्लैटफ़ॉर्म पर.

  • रिमोट सरफ़ेस का मतलब है, स्मार्टवॉच की स्टाइल, विजेट, आपका ऐप्लिकेशन या कोई दूसरा ऐप्लिकेशन.

  • इसलिए, ये सभी रिमोट सरफ़ेस के उदाहरण हैं.

  • इसलिए, कहीं न कहीं, किसी दूसरी जगह पर, आपके ऐप्लिकेशन या सर्वर को पता होता है कि उस रिमोट सरफ़ेस पर क्या भेजना है.

  • और…

  • मेरे स्पीकर का क्या होगा?

  • इन दोनों के बीच, काफ़ी दूरी है.

  • यह दूरी, असल दूरी हो सकती है या फिर इंटरनेट कनेक्शन की दूरी हो सकती है, है न?

  • यह सिर्फ़ प्रोसेस की सीमा भी हो सकती है.

  • ऐसा हो सकता है कि आप दोनों एक ही डिवाइस का इस्तेमाल कर रहे हों.

  • हालांकि, इसके लिए आपको पैसे चुकाने होंगे.

  • यूज़र इंटरफ़ेस (यूआई) को कैप्चर करके भेजने का सबसे आसान तरीका है, स्क्रीन की कॉपी लेना और उसे भेजना.

  • हालांकि, इसमें एक समस्या है. यह बहुत तेज़ नहीं है, है न?

  • इसलिए, हम Remote Compose की मदद से, उस यूज़र इंटरफ़ेस (यूआई) को दिखाने वाला एक दस्तावेज़ भेजते हैं.

  • यह भी ध्यान रखें कि छोटे चैनल होने के कई फ़ायदे हैं.

  • यह ज़रूरी है.

  • हमने इसे आपके भेजे गए पहले Pixel फ़ोन में देखा था. हालांकि, यह बात उस प्लैटफ़ॉर्म पर किए जाने वाले किसी भी तरह के अपडेट पर लागू होती है, है न?

  • आपको दोतरफ़ा यात्रा का टिकट मिल गया है.

  • इसलिए, आपको उस रिमोट प्लैटफ़ॉर्म पर कोई इवेंट, क्लिक या टच मिलता है.

  • नया वर्शन पाने के लिए, आपको उस व्यक्ति से संपर्क करना होगा जिसने इसे बनाया है.

  • यह अच्छी बात नहीं है.

  • इसलिए, हम कई तरीकों से Remote Compose की मदद से इस समस्या को हल करने की कोशिश कर रहे हैं.

Remote Compose का आर्किटेक्चर और दस्तावेज़ का स्ट्रक्चर

  • हमने देखा कि दस्तावेज़ भेजा जा रहा है.

  • दस्तावेज़ के अलावा, कुछ और चीज़ें भी हैं जो बहुत ज़रूरी हैं.

  • पहला, दस्तावेज़ बनाने का तरीका.

  • दूसरा, गेम खेलने का तरीका.

  • मैंने बताया कि हम एक दस्तावेज़ बना रहे हैं.

  • हम स्क्रीन की कॉपी नहीं भेज रहे हैं. साथ ही, हम कोई ऐप्लिकेशन भी नहीं भेज रहे हैं.

  • इसलिए, हमारे पास उस दस्तावेज़ को बनाने में आपकी मदद करने के लिए तीन अलग-अलग तरीके हैं.

  • पहला Compose API है, दूसरा Kotlin API, KMP है, और तीसरा JSON फ़ॉर्मैट है.

  • ये सभी एक ही तरह के बाइट उत्सर्जित करते हैं.

  • इसलिए, हम उन दस्तावेज़ों को बनाने के लिए टूल का एक सेट उपलब्ध कराते हैं. साथ ही, Compose API की मदद से, हम Android Studio में मौजूद टूल का फ़ायदा ले सकते हैं.

  • उदाहरण के लिए, झलक देखने की सुविधा का इस्तेमाल करके, सीधे आईडीई में यह देखा जा सकता है कि आपका ऐप्लिकेशन कैसा दिखेगा.

  • हालांकि, हम कुछ नए और असरदार टूल पर भी काम कर रहे हैं. जैसे, दस्तावेज़ की जांच करने वाला टूल.

  • आइए, इस दस्तावेज़ पर एक नज़र डालते हैं.

  • यह मुख्य रूप से, बाइनरी फ़ॉर्मैट में एन्कोड किए गए ऑपरेशन की एक सूची होती है. ये ऑपरेशन, एक अलग यूज़र इंटरफ़ेस के बारे में बताते हैं, जिसे उस रिमोट प्लैटफ़ॉर्म पर भेजा जा सकता है.

  • इन दस्तावेज़ों की एक अहम खासियत यह है कि ये छोटे होते हैं.

  • हमने देखा कि छोटे साइज़ के थंबनेल ज़्यादा असरदार होते हैं.

  • इसका मतलब है कि हम आम तौर पर कुछ किलोबाइट की बात कर रहे हैं, है न?

  • हालांकि, अगर यूज़र इंटरफ़ेस (यूआई) ज़्यादा जटिल है और उसका लेआउट बहुत ज़्यादा अडैप्टिव है, तो भी हम कुछ दर्जन किलोबाइट की बात कर रहे हैं, है न?

  • हम सभी ऐसेट को उस दस्तावेज़ में पैकेज करते हैं.

  • इसलिए, अगर आप इस बारे में सोचें, तो दस्तावेज़ में सिर्फ़ बिटमैप को पैकेज करने पर ही जगह ली जा सकती है.

  • इसलिए, इस बात का ध्यान रखें.

  • आखिरकार, यही वजह है कि हम स्क्रीन कॉपी के बजाय दस्तावेज़ भेज रहे हैं.

  • जब हम छोटे होने और इसके अहम होने की बात करते हैं, तो यह सिर्फ़ बातचीत के बारे में नहीं होता.

  • यह Remote Compose के पीछे के सिद्धांत का एक मुख्य कॉर्नर केस है.

  • जैसा कि हमने देखा, इससे स्क्रीन पर पहला पिक्सल दिखने में लगने वाले समय पर असर पड़ता है. हालांकि, माफ़ करें.

  • इसका मतलब यह भी है कि हम सरफेस की क्षमता के हिसाब से, ज़्यादा से ज़्यादा दस्तावेज़ों का इस्तेमाल कर सकते हैं. साथ ही, हम ज़्यादा से ज़्यादा दस्तावेज़ों का इस्तेमाल कर सकते हैं. इसके बावजूद, हम बेहतर तरीके से काम कर सकते हैं.

  • विजेट की सुविधा उपलब्ध होने पर, हम इसका फ़ायदा उठा पाएंगे.

  • इन खिलाड़ियों की संख्या भी बहुत कम होती है और ये बहुत कम चीज़ों पर निर्भर होते हैं.

  • ये छोटे होते हैं और इनमें कुछ ही डिपेंडेंसी होती हैं. इसका मतलब है कि हम रिमोट कंपोज़ दस्तावेज़ों को ज़्यादा से ज़्यादा जगहों पर चला सकते हैं.

  • यह खास तौर पर, सीमित प्लैटफ़ॉर्म के लिए ज़रूरी है, जैसा कि आपको दिखेगा.

  • मैंने ट्रांसपोर्ट और दूरी के बारे में काफ़ी बात की है. हालांकि, Remote Compose का ट्रांसपोर्ट से कोई लेना-देना नहीं है.

  • यह आपकी ज़िम्मेदारी है.

  • हम इस डेटा को बाइट बफ़र में पैकेज करते हैं. इसके बाद, सही तरीके का इस्तेमाल करके इसे रिमोट प्लैटफ़ॉर्म पर भेजा जा सकता है.

  • विजेट के लिए, हम आपकी मदद करते हैं. हम आपको एक कनेक्टर उपलब्ध कराते हैं.

  • हालांकि, आम तौर पर यह ध्यान रखना ज़रूरी है कि ट्रांसपोर्ट की ज़िम्मेदारी आपकी है.

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

  • इसलिए, एक बात ध्यान में रखें कि आपको दस्तावेज़ ट्रांसफ़र करने का तरीका चुनने की सुविधा देने का मतलब है कि रिमोट कंपोज़ को कई स्थितियों में टूल के तौर पर फिर से इस्तेमाल किया जा सकता है. इनमें से कुछ स्थितियों के बारे में शायद हम सोच भी न पाएं, है न?

  • जब कोई प्लेयर दस्तावेज़ को लोड कर लेता है, तो वह अपने-आप चलने लगता है.

  • बस यही हमारा मकसद है.

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

  • इन सभी चीज़ों को एक साथ इस्तेमाल करके, हम साइज़ बदलने, स्क्रोल करने, टच इवेंट, कॉम्पोनेंट दिखाने या छिपाने का फ़ैसला लेने, ऐनिमेशन, कुछ टच इवेंट, और कुछ टच हैंडलिंग की सुविधा दे सकते हैं. यह सब, प्लेयर पर वापस जाए बिना दस्तावेज़ में किया जा सकता है.

  • कभी-कभी, अगर आपको कॉन्टेंट बनाने की प्रोसेस पर वापस जाना है, तो इसके लिए भी अनुरोध किया जा सकता है. जैसे, "कृपया मुझे एक नया दस्तावेज़ दें."

  • हम Remote Compose में AndroidX लाइब्रेरी के ज़रिए, मुख्य रूप से तीन आधिकारिक प्लेयर उपलब्ध कराते हैं.

  • पहला, Compose प्लेयर है. इसका इस्तेमाल Compose ऐप्लिकेशन में किया जा सकता है.

  • अगर अब भी View का इस्तेमाल किया जा रहा है, तो हमारे पास View प्लेयर भी है.

  • हमारे पास RemoteViews का एक सेटअप भी है, जो एपीआई 36 के बाद से Android प्लैटफ़ॉर्म पर उपलब्ध है. इसकी मदद से, Remote Compose का इस्तेमाल करके लॉन्चर पर चलने वाले Android विजेट बनाए जा सकते हैं.

  • अगर आपकी दिलचस्पी है, तो हमारे पास कुछ एक्सपेरिमेंटल प्लेयर भी हैं. जैसे, Skia, TypeScript, और Compose Multiplatform पर चलने वाले कुछ C++ प्लेयर.

  • इसलिए, जिस टेक्नोलॉजी का इस्तेमाल किया जा रहा है उसका इस्तेमाल कई अलग-अलग प्लैटफ़ॉर्म पर रेंडर करने के लिए किया जा सकता है.

  • कुल मिलाकर, मैंने जिस दूरी के बारे में बात की है वह अब भी मौजूद है. हालांकि, हम यह कोशिश कर रहे हैं कि यह दूरी सिर्फ़ तब मायने रखे, जब वाकई ऐसा हो.

  • हाँ।

रेंडरिंग की क्षमताएं, कॉम्पोनेंट, और इंटरैक्शन

  • चलिए, रिमोट कंपोज़ दस्तावेज़ में मिलने वाली सुविधाओं के बारे में थोड़ी बात करते हैं.

  • इसलिए, इसके बेस में एक Canvas है और इसमें Android Canvas की सभी सुविधाएं मौजूद हैं.

  • हालांकि, इसमें कुछ अतिरिक्त एपीआई भी शामिल हैं.

  • हालांकि, एक खास बात यह है कि Android Canvas में मौजूद सभी फ़्लोट को एक्सप्रेशन से बदला जा सकता है.

  • इससे आपको ऐनिमेशन बनाने की सुविधा मिलती है, जैसा कि यहां देखा जा सकता है. साथ ही, डाइनैमिक स्केलिंग और ज़रूरत के हिसाब से लेआउट बनाने की सुविधा भी मिलती है.

  • इसकी मदद से कई अलग-अलग काम किए जा सकते हैं.

  • एक्सप्रेशन के बारे में कुछ और जानकारी.

  • आपके पास सामान्य गणित, त्रिकोणमिति, ऐरे ऐक्सेस, और स्प्लाइन इंटरपोलेशन के लिए ऑपरेटर का एक बड़ा सेट है.

  • एक और अच्छी बात यह है कि बदली गई किसी भी वैल्यू को ऐनिमेट किया जा सकता है. इससे किसी भी वैल्यू की स्थिति में हुए बदलाव को ऐनिमेट किया जा सकता है.

  • इस ड्रॉइंग में, हर पेंडुलम एक अलग तरह का ऐनिमेशन चुनता है. ये सभी ऐनिमेशन, Remote Compose में उपलब्ध हैं.

  • इसके अलावा, हमारे पास बुनियादी कॉम्पोनेंट, Compose से जुड़ी चीज़ें, और ऐसी चीज़ें हैं जिनके बारे में आपको पता है.

  • यह बहुत ही जाने-पहचाने एपीआई, बॉक्स, लाइन, कॉलम वगैरह बनाता है.

  • इसके अलावा, हमारे पास अडैप्टिव कॉम्पोनेंट भी हैं.

  • इसकी एक अच्छी बात यह है कि उस समय आपके पास अपने दस्तावेज़ का कंट्रोल नहीं होता. इसलिए, ये ऑब्जेक्ट के गायब होने, दिखने, और चले जाने को हैंडल कर सकते हैं. साथ ही, साइज़ बदलने वगैरह की वजह से वापस आ सकते हैं. इसके लिए, दस्तावेज़ के सोर्स पर वापस जाने की ज़रूरत नहीं होती.

  • इसके बाद, हमारे पास कॉम्पोनेंट ऐनिमेशन है.

  • सभी बदलावों को ऐनिमेट किया जा सकता है. इसलिए, अगर कोई चीज़ हट जाती है, तो उसे ऐनिमेट किया जा सकता है.

  • साथ ही, अपनी पसंद के मुताबिक ऐनिमेशन बनाए जा सकते हैं.

  • इस मामले में, आपको दिखेगा कि कुछ लोग शेडर और अन्य चीज़ों का इस्तेमाल कर रहे हैं.

  • हमारा एक और काम है, वहां मौजूद लोगों से बातचीत करना. इसलिए, हम सिर्फ़ सुंदर तस्वीरें नहीं लेते.

  • इसमें चीज़ों पर क्लिक किया जा सकता है, टच इवेंट हो सकते हैं, स्क्रोल किया जा सकता है, और इस तरह की अन्य चीज़ें की जा सकती हैं.

  • सुलभता भी ज़रूरी है. इसलिए, आपके सभी Accessibility API यहां मौजूद हैं.

  • यहां आपको दिख रहा होगा कि मैं एक स्टॉपवॉच बना रहा हूं, जिसमें दिलचस्प यूज़र इंटरफ़ेस हैं. यह सब प्लेयर साइड पर हो रहा है.

  • यह सब दस्तावेज़ में ही मौजूद है.

  • आपको जो भी जानकारी दिखती है उसके लिए, सर्वर पर वापस जाने की ज़रूरत नहीं होती.

  • अगर आपने इसे किसी ऐप्लिकेशन में बनाया है, तो नीले रंग के हिस्से ऐप्लिकेशन हैं और काले रंग के हिस्से रिमोट कंपोज़ दस्तावेज़ हैं.

  • इन दोनों के बीच इंटरैक्ट किया जा सकता है.

  • यहां, मैं वैल्यू बढ़ा रहा हूं और आपको दिख रहा है कि ऐप्लिकेशन को ये वैल्यू मिल रही हैं. इसे हम होस्ट कहते हैं. मैं स्लाइडर को भी मूव कर सकता हूं. इससे दस्तावेज़ में मौजूद वैल्यू बदल जाएंगी.

  • इसलिए, मैं दोनों तरह से काम कर सकता हूं.

Compose एपीआई और एक्सप्रेशन की मदद से यूज़र इंटरफ़ेस (यूआई) बनाना

  • चलिए, इनमें से कोई दस्तावेज़ बनाने का तरीका जानते हैं.

  • इसके लिए, तीन एपीआई उपलब्ध हैं: Compose, Kotlin, और JSON.

  • Compose API के बारे में आपको थोड़ा-बहुत पता है.

  • इसमें कुछ ट्विस्ट हैं और हम उनके बारे में विस्तार से जानेंगे.

  • Kotlin API, प्रोसेस के हिसाब से काम करता है.

  • यह दस्तावेज़ में एक निर्देश की तरह है. इसलिए, यह एक-से-एक है.

  • JSON एक JSON सिंटैक्स है. हमारे पास ऐसे कन्वर्टर हैं जो इसे Remote Compose में बदल देंगे.

  • यह एलएलएम के साथ काम करने में भी मददगार है, क्योंकि यह दस्तावेज़ों को पढ़ सकता है और लिख सकता है.

  • चलिए, Compose में जाकर कुछ बनाते हैं.

  • इस मामले में, आपको दिखेगा कि यह एक कंपोज़ेबल और रिमोट कंपोज़ेबल है.

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

  • अब इसके अंदर मौजूद सभी निर्देश, रिमोट कमांड Remote Compose दस्तावेज़ के निर्देश जनरेट कर रहे हैं.

  • इस मामले में, एक सर्कल बनाएं. इसके बाद, कुछ फ़्लोट और एक्सप्रेशन जोड़ें. इन एक्सप्रेशन में समय का इस्तेमाल करें.

  • जब मैं इसे ऐनिमेशन में चालू करता हूं, तो ध्यान दें कि यह Android Studio से लाइव झलक है. यह आपके लिए लाइव चलेगा.

  • आपको वहां ये एक्सप्रेशन दिखते हैं.

  • आइए, इस बारे में थोड़ी और जानकारी हासिल करते हैं कि यह क्या है और कैसे काम करता है.

  • बाईं ओर, आपको स्प्रेडशीट जैसा कुछ दिखेगा.

  • यह फ़्लोट में वैल्यू की एक टेबल है.

  • इसमें डिपेंडेंसी ट्री भी होता है, ताकि आपको पता चल सके कि एक चीज़ दूसरी चीज़ से कहां कनेक्ट होती है.

  • जब भी कुछ बदलता है, तो उस पर निर्भर चीज़ों को साफ़ करने और विज्ञापन को अडजस्ट करने के लिए, डर्टी के तौर पर मार्क किया जाता है.

  • इसके बाद, यह सभी डिपेंडेंसी को हटा देगा और सिर्फ़ उन डिपेंडेंसी का आकलन करेगा जिनमें बदलाव हुआ है.

  • इसलिए, यह बहुत असरदार है. मान लें कि किसी ऑब्जेक्ट का साइज़ बदलता है, तो उस पर निर्भरता बदल जाती है और उसे यह दिखाना होता है.

  • यह कंप्यूटिंग का बहुत ही असरदार तरीका है, क्योंकि इसमें आपको ऊपर से नीचे तक जाना होता है और यह बहुत ही असरदार तरीके से काम करता है.

  • चलिए, इस घड़ी को थोड़ा और बेहतर बनाते हैं, ताकि हम दिखा सकें कि हम असल चीज़ें बना सकते हैं.

  • इस मामले में, हम किनारों पर कुछ टिक मार्क जोड़ रहे हैं. आपको कुछ फ़ॉर लूप दिखेंगे, ताकि आप इसमें लोकल और राइट के लिए फ़ॉर लूप बना सकें.

  • इसके बाद, हम घंटे और मिनट की सुइयां जोड़ते हैं. फिर सेकंड की सुई जोड़ते हैं. इसके बाद, इसे पूरा करने के लिए कुछ अलग-अलग बटन जोड़ते हैं. इस तरह, हमारे पास एक लाइव घड़ी तैयार हो जाती है.

  • यह असल में समय दिखा रहा है.

  • एक और दिलचस्प बात यह है कि इसे JSON में भी लिखा जा सकता है. अगर यह JSON में है, तो एलएलएम के साथ आसानी से इंटरैक्ट किया जा सकता है. जैसे, "मिनट वाली सुई को हरे रंग में बदलें". इससे एलएलएम को समझ आ जाएगा कि आपका क्या मतलब है.

  • इसलिए, यह बहुत अच्छा है.

  • ठीक है।

डेवलपर टूल और दस्तावेज़ को ऑप्टिमाइज़ करना

  • दाईं ओर.

  • उम्मीद है कि इससे आपको रिमोट कंपोज़ की सुविधाओं के बारे में जानकारी मिल गई होगी.

  • चलिए, हम आपको डेवलपर के लिए उपलब्ध सहायता के बारे में थोड़ी जानकारी देते हैं.

  • इसलिए, मैंने बताया कि ये मुख्य रूप से AndroidX लाइब्रेरी हैं. इसलिए, DAC पर मौजूद हर चीज़ को ढूंढने का तरीका आपको पता है.

  • आपको नई रिलीज़, दस्तावेज़ वगैरह मिलेंगे.

  • हमेशा की तरह, जॉन ने हमें दिखाया कि Android Studio में क्या-क्या किया जा सकता है.

  • मुझे लगता है कि मेरे लिए सबसे अच्छी चीज़ लाइव झलक है. इससे डेवलपमेंट में लगने वाला समय कम हो जाता है.

  • हम एक और चीज़ पर काम कर रहे हैं. वह है, फ़ॉर्मैट के लिए सार्वजनिक तौर पर उपलब्ध ओपन स्पेसिफ़िकेशन. है न?

  • हम ऐसा कुछ नहीं कर रहे हैं जो पूरी तरह से छिपा हुआ हो. यह सबके सामने है.

  • इससे यह देखा जा सकता है कि यह कैसे काम करता है, इसे कैसे बनाया और कोड किया गया है.

  • ऐप्लिकेशन में इस्तेमाल की जाने वाली आम चीज़ों में से एक है, ड्रॉ करने लायक ऐनिमेटेड वेक्टर. यह बहुत ही सुविधाजनक है.

  • बिटमैप के बारे में मैंने जो बताया था उसे याद रखें.

  • हमें बिटमैप के बजाय वेक्टर भेजने में ज़्यादा दिलचस्पी है, है न?

  • इसलिए, हम कुछ ऐसे टूल बना रहे हैं जिनकी मदद से, Lottie या किसी अन्य फ़ॉर्मैट को RemoteCompose कॉम्पोनेंट में बदला जा सकता है. इसके बाद, उसे RemoteCompose फ़ाइल में इस्तेमाल किया जा सकता है.

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

  • हमारे मामले में, यह एक दस्तावेज़ है.

  • इसलिए, हम जिस टूल पर काम कर रहे हैं उसकी एक झलक यहां देखें.

  • यह एक RemoteCompose दस्तावेज़ इंस्पेक्टर है. इसकी मदद से, दस्तावेज़ों की जांच की जा सकती है. साथ ही, इसमें कई काम के टूल और विज़ुअलाइज़ेशन लागू किए जा सकते हैं.

  • इसका एक अच्छा उदाहरण यह है कि कोई दस्तावेज़ खोलकर, उसमें मौजूद अलग-अलग कार्रवाइयों को सिलसिलेवार तरीके से लागू किया जा सकता है. इससे यह समझने में मदद मिलती है कि सभी चीज़ें एक साथ कैसे काम करती हैं.

  • हालांकि, हमारे पास अतिरिक्त टूल हैं.

  • उदाहरण के लिए, मुझे यह बहुत पसंद है. यह आपके दस्तावेज़ को अलग-अलग डेंसिटी और साइज़ में तुरंत विज़ुअलाइज़ करता है. इससे आपको तुरंत पता चल जाता है कि आपने जो बनाया है वह साइज़ में होने वाले अलग-अलग बदलावों के हिसाब से सही तरीके से अडजस्ट होगा या नहीं.

  • हम जिस नई चीज़ पर काम कर रहे हैं वह है एक बेहतरीन लेआउट इंस्पेक्टर. यह Android Studio में इस्तेमाल होने वाले लेआउट इंस्पेक्टर की तरह ही है. हालांकि, यहां इसका इस्तेमाल ऑपरेशन और दस्तावेज़ों के लिए किया जाता है.

  • हम 3D के मामले में और भी आगे जा सकते हैं.

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

  • यह ज़रूरी है.

  • हमें छोटे दस्तावेज़ चाहिए.

  • इससे सभी को मदद मिलती है.

  • कृपया ऐसा करें.

  • तो इसके लिए हम क्या कर सकते हैं?

  • चलिए, यूज़र इंटरफ़ेस का एक सामान्य उदाहरण लेते हैं.

  • जैसे, कोई ऐसी शीट जिसमें कई लाइनें हों.

  • इन पंक्तियों में, आपको नाम, एक छोटा ग्राफ़, और शायद एक बटन दिखेगा.

  • यह बहुत आम बात है.

  • उस यूज़र इंटरफ़ेस का साइज़ पहले से ही काफ़ी छोटा है.

  • हम करीब 25 केबी की बात कर रहे हैं. हालांकि, RemoteCompose में कई ऐसी सुविधाएं हैं जिनकी मदद से इसे और भी छोटा किया जा सकता है.

  • आइए, इनके बारे में जानते हैं.

  • सबसे पहले, हम यह काम करते हैं और यह मुफ़्त में किया जाता है. अगर एक जैसी स्ट्रिंग भेजी जाती हैं, तो हम उस पर ध्यान देते हैं.

  • एक ही स्ट्रिंग पर ले जाकर, हम कुछ बाइट कम कर सकते हैं.

  • हालांकि, हम लूप जैसी और भी सुविधाएं देते हैं.

  • इसलिए, मैंने अपना छोटा ग्राफ़ बनाने के लिए, इस लूप ऑपरेशन का इस्तेमाल किया, है न?

  • इससे कुछ और बाइट बच जाते हैं.

  • हमारे पास फ़ंक्शन भी हैं.

  • इसलिए, कोई फ़ंक्शन बनाया जा सकता है. यहां मैं उस ग्राफ़ के लिए फिर से ऐसा कर रहा हूं. इसके बाद, मैं उस ग्राफ़ को कई बार कॉल कर सकता हूं.

  • इससे भी कुछ बाइट की बचत होगी.

  • कॉम्पोनेंट के लिए, हमारे पास टेंप्लेट हैं, है न?

  • फ़ंक्शन के लिए भी ऐसे ही आइडिया हैं, लेकिन कॉम्पोनेंट के लिए ज़्यादा हैं, है न?

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

  • इसके अलावा, हम दस्तावेज़ को कंप्रेस करने की सुविधा भी देते हैं.

  • आम तौर पर, इस तरीके से दस्तावेज़ का साइज़ करीब आधा हो जाता है.

  • एक दिलचस्प बात यह है कि दस्तावेज़ का हेडर थोड़ा खास है.

  • हम इसे कंप्रेस नहीं करते.

  • यह सुविधा तब बहुत काम आती है, जब आपको बहुत सारे दस्तावेज़ों को डीकंप्रेस किए बिना, उन्हें तुरंत देखना हो.

  • इसलिए, दस्तावेज़ों का साइज़ छोटा होता है. हालांकि, उन्हें और भी छोटा किया जा सकता है.

  • इस छोटे से उदाहरण से देखा जा सकता है कि इसे कम करना कितना आसान है. यह एक छोटी सी सुविधा है.

विजेट और Wear OS में रिमोट कंपोज़

  • मैंने Android प्लैटफ़ॉर्म पर विजेट और खास तौर पर लॉन्चर विजेट के बारे में बात की.

  • इसलिए, आइए इस बारे में थोड़ी बात करते हैं कि हम क्या कर रहे हैं और पहले से क्या मौजूद है.

  • इसलिए, सबसे पहले हम किसी मौजूदा विजेट को फिर से बना सकते हैं. जैसे, घड़ी को पूरी तरह से RemoteCompose में बनाया जा सकता है. यह बिलकुल उसी तरह काम करेगा, बस RemoteCompose में होगा.

  • लेकिन हम और भी बहुत कुछ कर सकते हैं, है न?

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

  • ऐसा इसलिए, क्योंकि हमारे पास इसे करने के लिए सही प्रिमिटिव हैं. वहीं, रिमोट व्यू के साथ ऐसा नहीं किया जा सकता.

  • हम आपको ज़्यादा सुविधाएं और कंट्रोल देते हैं.

  • पावर की बात करें, तो यहां एक उदाहरण दिया गया है कि इस फ़ोन से क्या-क्या किया जा सकता है.

  • इससे आपको विजेट में पूरा गेम दिखता है.

  • साथ ही, मैं उस विजेट के असल साइज़ के बारे में बताऊँगा.

  • हम 4 केबी की बात कर रहे हैं.

  • मैंने बताया था कि Remote Compose में, हम ट्रांसपोर्ट को सीधे तौर पर मैनेज नहीं करते.

  • हालांकि, खास तौर पर विजेट के लिए, हम RemoteCompose Widget कनेक्टर क्लास उपलब्ध कराते हैं. इसकी मदद से, किसी दस्तावेज़ को आसानी से लॉन्चर पर भेजा जा सकता है.

  • अगर आपके पास पहले से ही विजेट हैं, तो हमारा सुझाव है कि आप Glance का इस्तेमाल जारी रखें. ऐसा इसलिए, क्योंकि Glance का नया वर्शन, प्लैटफ़ॉर्म पर रिमोट कंपोज़ को एमिट करने के लिए, अपने-आप बैक-एंड उपलब्ध कराता है.

  • अब Wear OS के बारे में बात करते हैं.

  • धन्यवाद, निको.

  • नमस्ते दोस्तों, क्या चल रहा है?

  • मेरा नाम जॉन ज़ोलर है.

  • मैं यहां आपसे Wear OS के बारे में बात करने के लिए मौजूद हूं.

  • मैंने इस प्रज़ेंटेशन के लिए करीब 30 चुटकुले लिखे थे. हालांकि, मैंने वे सभी अपनी मां को सुनाए और उन्होंने कहा कि अगर मैंने इनमें से कोई भी चुटकुला सुनाया, तो मुझे नौकरी से निकाल दिया जाएगा.

  • इसलिए, मैं इसे स्किप करके सीधे प्रज़ेंटेशन पर जा रहा हूं.

  • इसलिए, आइए रिमोट कंपोज़ और Wear OS पर इसके कुछ फ़ायदों के बारे में बात करते हैं.

  • सबसे पहले, हम Wear OS के नए वर्कआउट ट्रैकर के बारे में बात करेंगे.

  • हमने इसे बनाने के लिए, Remote Compose का इस्तेमाल किया. हमें पता है कि Wear के लिए, सभी सुविधाओं वाला और अच्छी क्वालिटी का वर्कआउट ट्रैकर बनाना वाकई मुश्किल है.

  • इसमें कुछ समय लगता है.

  • इसलिए, हमने आपके लिए यह काम कर दिया है. साथ ही, हमने कसरत से जुड़ी कुछ बेहतरीन और आधुनिक सुविधाएं शामिल की हैं. जैसे, लाइव मेट्रिक और मीडिया को कंट्रोल करने की सुविधा.

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

  • अगर हम Remote Compose के बिना, सिर्फ़ सामान्य Compose का इस्तेमाल करके ऐसा करते, तो हम स्क्रीन पर हर सेकंड रीफ़्रेश होने वाली लाइव मेट्रिक नहीं देख पाते.

  • इसमें एक मिनट लग सकता है, क्योंकि आपको सिर्फ़ एक मेट्रिक दिखाने के लिए, स्मार्टवॉच को हमेशा चालू स्क्रीन मोड में चालू करना होगा.

  • इसलिए, यह एक बहुत बड़ा फ़ायदा है.

  • आपको यकीन हो या न हो, लेकिन यह एक GIF है.

  • यह कोई तस्वीर नहीं है.

  • मुझे पता है कि यह अब तक नहीं बदला है. यह करीब 45 सेकंड में बदल जाएगा, जब हमें अगली मेट्रिक का अपडेट मिलेगा.

  • हालांकि, रिमोट कंपोज़ की सुविधा का यही फ़ायदा है.

  • इसके अलावा इस त्योहार में और क्या खास हो सकता है?

  • यह ऐप्लिकेशन असल में उपलब्ध है. इसका नाम Wear Workout Tracker है.

  • ASICS Runkeeper ऐप्लिकेशन ने इसकी मदद से अपना नया ऐप्लिकेशन बनाया है. इसे आज ही आज़माया जा सकता है. इसके लिए, इस लिंक पर जाएं और उनके ओपन बीटा टेस्ट में शामिल हों.

  • इसके बाद, हमारे पास Wear OS के विजेट हैं.

  • यह रिमोट कंपोज़ की सुविधा का एक और बेहतरीन उदाहरण है.

  • ये पुराने ProtoLayout टाइल लाइब्रेरी की जगह लेते हैं. इसलिए, अब आपको अलग-अलग डिवाइसों के लिए, दो अलग-अलग तरह के यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क इस्तेमाल करने की ज़रूरत नहीं है.

  • रिमोट कंपोज़ की मदद से, ये सभी काम किए जा सकते हैं.

  • Jetpack Glance का हिस्सा होने की वजह से, Wear OS पर मौजूद विजेट, Android के विजेट के यूनिफ़ाइड नेटवर्क का हिस्सा हैं.

  • ठीक है. इस नेटवर्क के हिस्से के तौर पर, RemoteCompose विजेट का यूज़र इंटरफ़ेस (यूआई), किसी खास ऐप्लिकेशन प्रोसेस से पूरी तरह से अलग होता है. इसलिए, इन्हें Wear OS डिवाइसों पर सुरक्षित तरीके से सीरियलाइज़ और रेंडर किया जा सकता है. इसके लिए, Android स्टैक के बाकी हिस्सों की तरह ही टेक्नोलॉजी का इस्तेमाल किया जाता है.

  • Remote Compose, विजेट में मॉडर्न ग्राफ़िक और रिस्पॉन्सिव लेआउट भी जोड़ता है. यह सब करते समय, यह बैटरी की खपत को कम रखता है और बेहतर परफ़ॉर्मेंस देता है.

  • Wear OS 7 के साथ, हार्डवेयर मैन्युफ़ैक्चरर पहले से ही वर्टिकल स्क्रोलिंग ट्रे का इस्तेमाल कर रहे हैं.

  • यह Samsung Galaxy Watch है. इसमें देखा जा सकता है कि ट्रे में मौजूद विजेट, वर्टिकल तौर पर कैसे स्क्रोल हो रहे हैं.

  • अगर आपको टाइल को विजेट पर माइग्रेट करने के बारे में ज़्यादा जानना है, तो इस लिंक पर जाएं.

  • पुराने डिवाइसों पर, टाइल के लिए हॉरिज़ॉन्टल कैरसेल का इस्तेमाल किया जाता है. इन डिवाइसों पर, विजेट अपने-आप फ़ुल-स्क्रीन टाइल के तौर पर दिखेंगे.

  • साथ ही, ये Wear OS 4 के साथ भी पूरी तरह काम करते हैं.

  • इस लिंक पर जाकर, आपको पुराने सिस्टम के साथ काम करने की सुविधा के बारे में भी ज़्यादा जानकारी मिलेगी.

  • हमारे कुछ अन्य पार्टनर भी हैं, जिन्होंने पहले से ही विजेट अपनाए हैं.

  • आप इसे देख सकते हैं.

  • बस, इतना ही.

  • हां, निको.

  • धन्यवाद.

आगे क्या करना है और खास जानकारी

  • ठीक है।

  • इस तरह, हमने इस विषय पर बात कर ली है.

  • हमने रिमोट कंपोज़ की कुछ सुविधाओं की समीक्षा की.

  • कुछ और भी हैं जिनके बारे में हमने बात नहीं की.

  • यह एक बहुत ही बेहतरीन फ़्रेमवर्क है.

  • हमारा सुझाव है कि आप उपलब्ध दस्तावेज़ और आने वाले समय में उपलब्ध होने वाले दस्तावेज़ देखें.

  • हमारा मकसद एक ऐसा भविष्य बनाना है जहां रिमोट कंपोज़ का इस्तेमाल करके, सभी अलग-अलग रिमोट प्लैटफ़ॉर्म को मैनेज किया जा सके.

  • आपने इनमें से कुछ को देखा होगा, जैसे कि Wear OS और विजेट.

  • हालांकि, आने वाले समय में और भी कई सुविधाएं जोड़ी जाएंगी.

  • मैं यह भी कहूंगा कि यह एक जारी प्रोजेक्ट है.

  • इस पर अभी काम चल रहा है.

  • हम इन सभी को ओपन सोर्स के तौर पर डेवलप करते हैं.

  • आपको यह जानकारी दिखती है कि हम क्या कर रहे हैं.

  • हालांकि, हम डेवलपर से सुझाव/राय या शिकायत सुनना चाहते हैं, है न?

  • हम आपके लिए यह सुविधा बना रहे हैं.

  • इसलिए, अगर आपके पास कोई और आइडिया है या आपको कोई सुविधा नहीं मिल रही है, तो हमसे संपर्क करें.

  • हमें यह जानकर खुशी हुई.

  • मैं अपनी बात इस पर खत्म करना चाहूंगा कि आपने अभी जो प्रज़ेंटेशन देखा है वह Remote Compose में बनाया गया है. इसमें ऐनिमेशन भी शामिल हैं.