नेविगेशन

'लिखें' सुविधा आज़माएं
Wear OS के लिए, Jetpack Compose पर यूज़र इंटरफ़ेस (यूआई) टूलकिट का सुझाव दिया जाता है.

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

डिज़ाइन

ऐप्लिकेशन डिज़ाइन के दिशा-निर्देशों में बताए गए तरीके के मुताबिक, अपने ऐप्लिकेशन की हैरारकी को छोटा और लीनियर रखें.

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

पहली इमेज. सबसे ज़रूरी कॉन्टेंट को वर्टिकल कंटेनर में सबसे ऊपर रखें.

जब उपयोगकर्ता आपकी किसी स्क्रीन पर आते हैं, तो पक्का करें कि वे बैक स्टैक पर नीचे जाने के लिए, स्वाइप करके खारिज करने वाले जेस्चर का इस्तेमाल कर सकें.

नेविगेशन लागू करना

नेविगेशन लागू करने के लिए, आपके पास तीन विकल्प होते हैं. इनके बारे में यहां बताया गया है:

  • सिर्फ़ गतिविधियां, जो सुझाया गया तरीका है
  • गतिविधियां और फ़्रैगमेंट
  • Jetpack Navigation

सिर्फ़ गतिविधियां

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

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

ध्यान दें: अगर फ़्रैगमेंट का इस्तेमाल नहीं किया जा रहा है, तो अपनी गतिविधियों को ComponentActivity से इनहेरिट करें. गतिविधि के अन्य टाइप, मोबाइल के हिसाब से बनाए गए यूज़र इंटरफ़ेस (यूआई) एलिमेंट का इस्तेमाल करते हैं. Wear OS के लिए, इन एलिमेंट की ज़रूरत नहीं होती.

गतिविधियां और फ़्रैगमेंट

Wear OS ऐप्लिकेशन में गतिविधियों के साथ फ़्रैगमेंट का इस्तेमाल किया जा सकता है. हालांकि, हमारा सुझाव है कि ऐसा न करें. ऐसा इसलिए, क्योंकि छोटे और सपाट आर्किटेक्चर बनाने के लिए, फ़्रैगमेंट का इस्तेमाल करने का कोई फ़ायदा नहीं है.

ध्यान दें: अगर फ़्रैगमेंट का इस्तेमाल किया जा रहा है, तो उन्हें FragmentActivity से इनहेरिट करें. गतिविधि के अन्य टाइप, मोबाइल के हिसाब से बनाए गए यूज़र इंटरफ़ेस (यूआई) एलिमेंट का इस्तेमाल करते हैं. Wear OS के लिए, आपको इनकी ज़रूरत नहीं होती.

Wear OS ऐप्लिकेशन में फ़्रैगमेंट इस्तेमाल करने से जुड़ी कुछ समस्याएं यहां दी गई हैं:

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

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

ध्यान दें: फ़्रैगमेंट का इस्तेमाल करते समय, 'स्‍वाइप करके हटाएं' जेस्चर के साथ काम करने के लिए, FragmentManager.replace के बजाय FragmentManager.add का इस्तेमाल करें. इससे यह पक्का करने में मदद मिलती है कि आपका पिछला फ़्रैगमेंट, स्वाइप किए जाने के दौरान सबसे ऊपर मौजूद फ़्रैगमेंट के नीचे रेंडर हो.

Jetpack Navigation

Jetpack नेविगेशन, Wear OS पर काम कर सकता है. हालांकि, इसमें फ़्रैगमेंट की तरह ही समस्याएं होती हैं. इससे ऐप्लिकेशन को डेवलप करने में ज़्यादा समय लगता है. साथ ही, Wear OS ऐप्लिकेशन की हैरारकी आम तौर पर छोटी और लीनियर होती है. इसलिए, इससे कई फ़ायदे नहीं मिलते. सिर्फ़ गतिविधि के आधार पर टारगेट करना सबसे अच्छा तरीका है.

Jetpack नेविगेशन का पूरा फ़ायदा पाने के लिए, ये काम करें:

  • पक्का करें कि हर फ़्रैगमेंट, अपने रूट के तौर पर SwipeDismissFrameLayout का इस्तेमाल करता हो. साथ ही, नेविगेशन ग्राफ़ में वापस जाने के लिए, मैन्युअल रूप से 'खारिज करें' ऐक्शन का इस्तेमाल करें.
  • एक ऐसा कस्टम FragmentNavigator लागू करें जो एक-दूसरे के ऊपर फ़्रैगमेंट रेंडर करता हो.