नेविगेशन

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

डिज़ाइन

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

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

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

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

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

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

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

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

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

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

ध्यान दें: अगर आप फ़्रैगमेंट का इस्तेमाल नहीं कर रहे हैं, तो अपनी गतिविधियों को 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 लागू करें जो फ़्रैगमेंट को एक-दूसरे के ऊपर रेंडर करता हो.