टीवी डिवाइसों पर, ऐप्लिकेशन के लिए नेविगेशन कंट्रोल की सीमित सुविधाएं उपलब्ध होती हैं. टीवी ऐप्लिकेशन के लिए असरदार नेविगेशन स्कीम बनाने के लिए, इन सीमित कंट्रोल के साथ-साथ, ऐप्लिकेशन इस्तेमाल करते समय उपयोगकर्ताओं की सीमाओं को समझना ज़रूरी है. टीवी के लिए Android ऐप्लिकेशन बनाते समय, इस बात पर खास ध्यान दें कि टचस्क्रीन के बजाय रिमोट कंट्रोल के बटन इस्तेमाल करते समय, उपयोगकर्ता कैसे नेविगेट करता है.
सिद्धांत
इसका लक्ष्य यह है कि नेविगेशन को इस तरह से डिज़ाइन किया जाए कि वह यूज़र इंटरफ़ेस पर हावी न हो और कॉन्टेंट से लोगों का ध्यान न भटकाए. साथ ही, वह लोगों को सहज और जाना-पहचाना लगे. नीचे दिए गए सिद्धांतों से, टीवी ऐप्लिकेशन पर एक जैसा और आसान उपयोगकर्ता अनुभव देने के लिए, बुनियादी शर्तें तय करने में मदद मिलती है.
कॉन्टेंट को आसानी से ऐक्सेस किया जा सकता है. उपयोगकर्ता कम से कम क्लिक करके, कॉन्टेंट को तुरंत ऐक्सेस करना चाहते हैं. अपनी जानकारी को इस तरह से व्यवस्थित करें कि उसके लिए कम से कम स्क्रीन की ज़रूरत पड़े.
सबसे सही तरीकों और सुझावों का पालन करके, उपयोगकर्ताओं के लिए नेविगेशन को आसान बनाएं. नेविगेशन पैटर्न को बिना किसी वजह के बार-बार न बदलें. इससे भ्रम पैदा होता है और यह अनुमान लगाना मुश्किल हो जाता है कि आगे क्या होगा.
नेविगेशन को इतना आसान बनाएं कि उपयोगकर्ता के सामान्य व्यवहार को आसानी से सपोर्ट किया जा सके. ज़रूरत से ज़्यादा नेविगेशन लेयर जोड़कर, इसे ज़्यादा मुश्किल न बनाएं.
कंट्रोलर
कंट्रोलर अलग-अलग स्टाइल में आते हैं. जैसे, कम से कम बटन वाला रिमोट कंट्रोल और जटिल गेम कंट्रोलर. सभी कंट्रोलर में एक डायरेक्शनल पैड (डी-पैड) के साथ-साथ, चुनें, होम, और वापस जाएं बटन शामिल होते हैं. अन्य बटन, मॉडल के हिसाब से अलग-अलग होते हैं.
डी-पैड
टीवी पर नेविगेट करने का मुख्य तरीका डी-पैड है. इसमें ऊपर, नीचे, बाएं, और दाएं दिशा वाले हार्डवेयर बटन शामिल होते हैं. डी-पैड, फ़ोकस को एक ऑब्जेक्ट से उस ऑब्जेक्ट पर ले जाता है जो बटन दबाने की दिशा में सबसे पास होता है.
चुनें बटन
इससे स्क्रीन पर फ़ोकस किया गया आइटम चुना जाता है.
होम बटन
इस बटन पर टैप करने से, उपयोगकर्ता को सिस्टम की होम स्क्रीन पर ले जाया जाता है.
'वापस जाएं' बटन
इससे उपयोगकर्ताओं को पिछली स्क्रीन पर वापस जाने का विकल्प मिलता है.
माइक्रोफ़ोन बटन
इससे Google Assistant या बोले गए शब्दों का अपने-आप टाइप होना चालू होता है.
डी-पैड नेविगेशन
टीवी डिवाइस पर, उपयोगकर्ता डी-पैड या ऐरो बटन का इस्तेमाल करके नेविगेट करते हैं. इस तरह के कंट्रोल से, सिर्फ़ ऊपर, नीचे, बाएं, और दाएं की ओर जाने की सुविधा मिलती है. टीवी के लिए ऑप्टिमाइज़ किया गया बेहतरीन ऐप्लिकेशन बनाने के लिए, आपको नेविगेशन स्कीम देनी होगी. इससे उपयोगकर्ता, इन सीमित कंट्रोल का इस्तेमाल करके आपके ऐप्लिकेशन को नेविगेट करने का तरीका तुरंत सीख पाएगा.
Android फ़्रेमवर्क, लेआउट एलिमेंट के बीच दिशा के हिसाब से नेविगेशन को अपने-आप मैनेज करता है. इसलिए, आम तौर पर आपको अपने ऐप्लिकेशन के लिए कुछ भी अतिरिक्त करने की ज़रूरत नहीं होती. हालांकि, आपको डी-पैड कंट्रोलर की मदद से नेविगेशन की अच्छी तरह से जांच करनी चाहिए, ताकि नेविगेशन से जुड़ी किसी भी समस्या का पता लगाया जा सके.
यह जांच करने के लिए कि आपके ऐप्लिकेशन का नेविगेशन सिस्टम, टीवी डिवाइस पर डी-पैड के साथ ठीक से काम करता है या नहीं, इन दिशा-निर्देशों का पालन करें:
- पक्का करें कि डी-पैड कंट्रोलर का इस्तेमाल करने वाला व्यक्ति, स्क्रीन पर दिखने वाले सभी कंट्रोल पर नेविगेट कर सके.
- फ़ोकस के साथ स्क्रोल की जा सकने वाली सूचियों के लिए, पक्का करें कि डी-पैड के ऊपर और नीचे वाले बटन दबाने पर सूची स्क्रोल हो रही हो. साथ ही, 'चुनें' बटन दबाने पर सूची में मौजूद कोई आइटम चुना जा रहा हो. पुष्टि करें कि उपयोगकर्ता सूची में किसी एलिमेंट को चुन सकते हैं. साथ ही, यह भी पुष्टि करें कि किसी एलिमेंट को चुनने पर सूची अब भी स्क्रोल हो रही हो.
- पक्का करें कि कंट्रोल के बीच स्विच करना आसान हो और अनुमान लगाया जा सके.
दिशा के हिसाब से नेविगेशन में बदलाव करना
Android फ़्रेमवर्क, आपके लेआउट में फ़ोकस किए जा सकने वाले एलिमेंट की जगह के हिसाब से, दिशा के हिसाब से नेविगेशन की सुविधा अपने-आप लागू करता है. डी-पैड कंट्रोलर का इस्तेमाल करके, अपने ऐप्लिकेशन में जनरेट की गई नेविगेशन स्कीम को टेस्ट करें. टेस्टिंग के बाद, अगर आपको लगता है कि उपयोगकर्ताओं को आपके लेआउट में किसी खास तरीके से नेविगेट करना चाहिए, तो अपने कंट्रोल के लिए दिशा के हिसाब से नेविगेशन सेट अप किया जा सकता है.
यहां दिए गए कोड सैंपल में, TextView लेआउट ऑब्जेक्ट के लिए फ़ोकस पाने वाले अगले कंट्रोल को तय करने का तरीका बताया गया है:
<TextView android:id="@+id/Category1" android:nextFocusDown="@+id/Category2" />
यहां दी गई टेबल में, Android के यूज़र इंटरफ़ेस विजेट के लिए उपलब्ध सभी नेविगेशन एट्रिब्यूट दिए गए हैं:
| एट्रिब्यूट | फ़ंक्शन |
|---|---|
nextFocusDown |
यह तय करता है कि जब उपयोगकर्ता नीचे की ओर नेविगेट करता है, तो किस व्यू पर फ़ोकस किया जाएगा. |
nextFocusLeft |
इस एट्रिब्यूट से, यह तय किया जाता है कि जब उपयोगकर्ता बाईं ओर नेविगेट करता है, तो किस व्यू पर फ़ोकस किया जाएगा. |
nextFocusRight |
यह तय करता है कि जब उपयोगकर्ता दाईं ओर नेविगेट करता है, तब किस व्यू पर फ़ोकस किया जाएगा. |
nextFocusUp |
इस विकल्प से, यह तय किया जाता है कि जब उपयोगकर्ता ऊपर की ओर नेविगेट करे, तो किस व्यू पर फ़ोकस किया जाए. |
इनमें से किसी एक नेविगेशन एट्रिब्यूट का इस्तेमाल करने के लिए, लेआउट में मौजूद किसी दूसरे विजेट के android:id की वैल्यू सेट करें. पक्का करें कि आपने नेविगेशन के क्रम को लूप के तौर पर सेट अप किया हो, ताकि आखिरी कंट्रोल से फ़ोकस वापस पहले कंट्रोल पर चला जाए.
साफ़ तौर पर फ़ोकस और चुनने की सुविधा उपलब्ध कराएं
टीवी डिवाइसों पर किसी ऐप्लिकेशन की नेविगेशन स्कीम की सफलता इस बात पर निर्भर करती है कि कोई उपयोगकर्ता, यूज़र इंटरफ़ेस के किस एलिमेंट पर फ़ोकस किया जा रहा है, यह तुरंत पता लगा सकता है या नहीं. अगर आपने फ़ोकस किए गए आइटम के बारे में साफ़ तौर पर नहीं बताया है, तो उपयोगकर्ता को यह पता नहीं चलेगा कि वह किस आइटम पर कार्रवाई कर सकता है. इससे वह तुरंत निराश हो सकता है और आपके ऐप्लिकेशन को बंद कर सकता है. इसी वजह से, यह ज़रूरी है कि आपके ऐप्लिकेशन के शुरू होने के तुरंत बाद या जब भी वह इस्तेमाल न किया जा रहा हो, तब हमेशा कोई ऐसा आइटम फ़ोकस में हो जिस पर उपयोगकर्ता तुरंत कार्रवाई कर सके.
अपने ऐप्लिकेशन के लेआउट और उसे लागू करने के दौरान, रंग, साइज़, ऐनिमेशन या इन एट्रिब्यूट के कॉम्बिनेशन का इस्तेमाल करें. इससे उपयोगकर्ताओं को यह तय करने में मदद मिलेगी कि वे आगे कौनसी कार्रवाइयां कर सकते हैं. अपने पूरे ऐप्लिकेशन में फ़ोकस दिखाने के लिए, एक जैसी स्कीम का इस्तेमाल करें.
Android, फ़ोकस किए गए और चुने गए कंट्रोल को हाइलाइट करने के लिए, ड्रॉएबल स्टेट लिस्ट रिसॉर्स उपलब्ध कराता है. नीचे दिए गए कोड के उदाहरण में, बटन के लिए विज़ुअल बिहेवियर को चालू करने का तरीका बताया गया है. इससे यह पता चलता है कि उपयोगकर्ता ने कंट्रोल पर नेविगेट किया है और फिर उसे चुना है:
<!-- res/drawable/button.xml --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/button_focused" /> <!-- focused --> <item android:state_hovered="true" android:drawable="@drawable/button_focused" /> <!-- hovered --> <item android:drawable="@drawable/button_normal" /> <!-- default --> </selector>
नीचे दिए गए लेआउट एक्सएमएल के सैंपल कोड में, पिछली स्टेट लिस्ट ड्रॉअबल को Button पर लागू किया गया है:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
पक्का करें कि फ़ोकस किए जा सकने वाले और चुने जा सकने वाले कंट्रोल में ज़रूरत के मुताबिक पैडिंग दी गई हो, ताकि उनके आस-पास की हाइलाइट साफ़ तौर पर दिखें.
'वापस जाएं' बटन का इस्तेमाल करके नेविगेट करना
यह पक्का करें कि बैक बटन का व्यवहार इन दिशा-निर्देशों के मुताबिक हो, ताकि प्लैटफ़ॉर्म पर सभी ऐप्लिकेशन में एक जैसा अनुभव मिले.
'वापस जाएं' बटन के अनुमानित व्यवहार का इस्तेमाल करना
नेविगेशन को आसान और अनुमानित बनाने के लिए, जब उपयोगकर्ता रिमोट के 'वापस जाएं' बटन को दबाए, तो उसे पिछली स्क्रीन पर ले जाएं.
अगर कोई उपयोगकर्ता मेन्यू आइटम से पेज के बीच में मौजूद किसी कार्ड पर जाता है और फिर 'वापस जाएं' बटन दबाता है, तो नतीजे इस बात पर निर्भर करते हैं कि ऐप्लिकेशन में टॉप नेविगेशन का इस्तेमाल किया जाता है या बाएं नेविगेशन का:
- ऐप्लिकेशन में सबसे ऊपर मौजूद नेविगेशन का इस्तेमाल किया जाता है: तेज़ी से स्क्रोल करके और मेन्यू पर फ़ोकस करके, उपयोगकर्ता को पेज के सबसे ऊपर ले जाएं.
- ऐप्लिकेशन में बाईं ओर मौजूद नेविगेशन का इस्तेमाल किया जाता है: बाईं ओर मौजूद मेन्यू को चालू करें और फ़िलहाल चालू मेन्यू आइटम पर फ़ोकस करें.
पक्का करें कि 'वापस जाएं' बटन, पुष्टि वाली स्क्रीन से न जुड़ा हो या कभी न खत्म होने वाले लूप का हिस्सा न हो.
ऐसा न करें.
एग्ज़िट गेटिंग से बचें. उपयोगकर्ताओं को बिना पुष्टि किए ऐप्लिकेशन से बाहर निकलने की अनुमति दें.
ऐसा न करें.
मेन्यू को बंद करने और खोलने के इनफ़िनिट लूप में कभी न जाएं. आमतौर पर, 'वापस जाएं' बटन दबाने पर ऐप्लिकेशन बंद हो जाता है. मेन्यू में 'बंद करें' बटन न दिखाएं. हालांकि, बच्चों की प्रोफ़ाइल जैसे खास मामलों में ऐसा किया जा सकता है.
ऊपर या पीछे जाने का बटन न दिखाएं
हैंडहेल्ड डिवाइसों के उलट, टीवी पर पीछे जाने के लिए रिमोट पर मौजूद 'वापस जाएं' बटन का इस्तेमाल किया जाता है. स्क्रीन पर वर्चुअल बैक बटन दिखाना ज़रूरी नहीं है:
ऐसा न करें.
ज़रूरत पड़ने पर, रद्द करें बटन दिखाएं
अगर सिर्फ़ पुष्टि करने, डेटा मिटाने या खरीदारी से जुड़ी कार्रवाइयां दिखती हैं, तो रद्द करें बटन का इस्तेमाल करना सबसे सही तरीका है. इससे उपयोगकर्ता को पिछले डेस्टिनेशन पर वापस जाने में मदद मिलती है:
ऐसा करें.
वापस जाने की सुविधा लागू करना
Android फ़्रेमवर्क, आम तौर पर बैक नेविगेशन को अच्छी तरह से हैंडल करता है. ऐसा ही वह डी-पैड के लिए भी करता है. नेविगेशन कॉम्पोनेंट का इस्तेमाल करके, अलग-अलग तरह के नेविगेशन ग्राफ़ इस्तेमाल किए जा सकते हैं. कभी-कभी, आपको कुछ कस्टम व्यवहार लागू करने की ज़रूरत पड़ सकती है. जैसे, बैक बटन को दबाने पर, फ़ोकस को लंबी सूची की शुरुआत में रीसेट करना.
ComponentActivity, FragmentActivity और AppCompatActivity के लिए बेस क्लास है. इसकी मदद से, बैक बटन के व्यवहार को कंट्रोल किया जा सकता है. इसके लिए, OnBackPressedDispatcher का इस्तेमाल करें. इसे getOnBackPressedDispatcher() को कॉल करके वापस पाया जा सकता है.
ज़्यादा जानकारी के लिए, कस्टम बैक नेविगेशन की सुविधा देना लेख पढ़ें.
टीवी पर प्लेबैक कंट्रोल
टीवी पर वीडियो चलाने की सुविधा सबसे अहम सुविधाओं में से एक है. यह ज़रूरी है कि Android TV पर मौजूद सभी ऐप्लिकेशन में वीडियो प्लेयर एक जैसा काम करें. टीवी के लिए, प्लेबैक कंट्रोल से जुड़े दिशा-निर्देश पढ़ें.
लाइव टैब नेविगेशन
टीवी ऐप्लिकेशन की क्वालिटी से जुड़ी ज़रूरी शर्तों का पालन करने के साथ-साथ, लाइव टैब पर इंटिग्रेट किए गए लाइव टीवी फ़ीड वाले ऐप्लिकेशन को, बिना किसी रुकावट के वीडियो चलाने और सीधे वापस जाने से जुड़ी ज़रूरी शर्तों को भी पूरा करना होगा. इनके बारे में यहां बताया गया है.
बिना किसी रुकावट के वीडियो चलाना
बिना किसी रुकावट के वीडियो चलाने की सुविधा, Google TV और Android TV से मिले किसी भी लाइव या लीनियर चैनल के डीप लिंक के बाद, ऐप्लिकेशन में किए गए व्यवहार पर लागू होती है.
जब कोई उपयोगकर्ता किसी डीप लिंक पर क्लिक करता है, तो ये नियम लागू होते हैं:
- कोई रुकावट नहीं: लोगों को सीधे तौर पर चैनल के वीडियो पर ले जाना होगा. इसके लिए, उन्हें साइन-इन या साइन-अप फ़्लो या ब्रैंडिंग वीडियो जैसी स्क्रीन पर रोकना या देरी नहीं करनी होगी.
- कोल्ड बूट से जुड़ी समस्या: अगर डीप लिंक, टारगेट ऐप्लिकेशन को कोल्ड बूट से लोड करता है, तो बूट-अप में देरी हो सकती है. इस मामले में, ऐप्लिकेशन बूट-अप ब्रैंडिंग वाले वीडियो या ऐनिमेशन भी इस्तेमाल किए जा सकते हैं.
- चैनल लोड होने में देरी से जुड़ा अपवाद: अगर चैनल लोड होने में कुछ सेकंड लगते हैं, तो ब्रैंडिंग दिखाने की अनुमति है. यह अवधि उतनी ही होनी चाहिए जितनी चैनल को लोड होने में लगती है.
अगर उपयोगकर्ता ने साइन आउट किया है या उसने सदस्यता नहीं ली है, तो साइन इन या साइन अप करने की प्रोसेस पूरी करने के लिए, पैसे चुकाकर लिए जाने वाले चैनल पर वीडियो चलाने की सुविधा को ब्लॉक किया जा सकता है.
Direct-back
जब उपयोगकर्ता, 'लाइव' टैब पर मौजूद डीप लिंक से कोई ऐप्लिकेशन लॉन्च करते हैं और फिर 'वापस जाएं' बटन दबाते हैं, तो उन्हें एक बार 'वापस जाएं' बटन दबाने पर, 'लाइव' टैब पर वापस रीडायरेक्ट किया जाना चाहिए. भले ही, उन्हें ऐप्लिकेशन लॉन्च किए हुए कितना भी समय हो गया हो. Google TV और Android TV पर, लाइव टैब के सभी डीप लिंक के लिए, सीधे वापस जाने की सुविधा ज़रूरी है.
लाइव टैब के डीप लिंक को, जोड़े गए डीप लिंक पैरामीटर से पहचाना जाता है:
?exit_on_back=[true|false]. ऐप्लिकेशन को इस पैरामीटर को पार्स करना होगा, ताकि यह पता चल सके कि ऐप्लिकेशन को Live टैब से लॉन्च किया गया था या नहीं. अगर exit_on_back true है, तो ऐप्लिकेशन को सीधे वापस जाने की सुविधा लागू करनी होगी.
ध्यान दें कि अगर उपयोगकर्ता डीप लिंक के बाद, पहले बटन के तौर पर 'वापस जाएं' बटन के अलावा कोई दूसरा बटन दबाता है, तो सीधे वापस जाने की सुविधा की ज़रूरी शर्त लागू नहीं होती. ऐसे में, सिर्फ़ 'वापस जाएं' बटन के स्टैंडर्ड तरीके का इस्तेमाल करना ज़रूरी है.
उदाहरण के लिए, मान लें कि डीप लिंक पर क्लिक करने के बाद, उपयोगकर्ता डी-पैड के 'चुनें' बटन को दबाता है. इससे कंट्रोल ओवरले खुल जाता है. उपयोगकर्ता, ओवरले के हटने का इंतज़ार करता है. इसके बाद, वह 'वापस जाएं' बटन दबाता है. डीप लिंक पर क्लिक करने के बाद, सबसे पहले डी-पैड का 'चुनें' बटन दबाया गया था. इसलिए, सीधे वापस जाने की सुविधा की ज़रूरी शर्तें लागू नहीं होती हैं. इसके बजाय, ऐप्लिकेशन के बैक स्टैक का सामान्य लॉजिक लागू होता है.
बैक बटन को बार-बार दबाने पर, उपयोगकर्ता को ऐप्लिकेशन के रूट पर जाना चाहिए. इसके बाद, उसे Google TV या Android TV पर वापस जाना चाहिए. ऐसा बिना किसी इनफ़िनिट लूप के होना चाहिए. ज़्यादा जानकारी के लिए, बैक बटन के अनुमानित व्यवहार सेक्शन देखें.
नेविगेशन आर्किटेक्चर
नेविगेशन आर्किटेक्चर को अच्छी तरह से डिज़ाइन करने पर, उपयोगकर्ताओं को यह समझने में मदद मिलती है कि वे आपके ऐप्लिकेशन में कहां हैं और अलग-अलग कॉन्टेंट को कैसे ऐक्सेस करें. नेविगेशन डिज़ाइन के इन पहलुओं पर ध्यान दें.
शुरू करने की जगह तय की गई है
जब उपयोगकर्ता लॉन्चर से ऐप्लिकेशन खोलता है, तो उसे पहली स्क्रीन दिखती है. इसके बाद, जब वह 'वापस जाएं' बटन दबाकर लॉन्चर पर वापस आता है, तो उसे आखिरी स्क्रीन दिखती है.
डीप लिंकिंग, मैन्युअल नेविगेशन की तरह काम करती है
डीप लिंकिंग या मैन्युअल तरीके से किसी खास डेस्टिनेशन पर नेविगेट करने के दौरान, उपयोगकर्ता 'वापस जाएं' बटन का इस्तेमाल करके, डेस्टिनेशन पर वापस जा सकते हैं.
किसी दूसरे ऐप्लिकेशन से किसी ऐप्लिकेशन में डीप लिंक करने से, मैन्युअल नेविगेशन की प्रोसेस पूरी होती है. उदाहरण के लिए, अगर कोई उपयोगकर्ता Google TV से सीधे Moviestar ऐप्लिकेशन के किसी पेज पर जाता है और फिर 'वापस जाएं' बटन दबाता है, तो उसे Moviestar ऐप्लिकेशन के होम पेज पर ले जाया जाता है.
फ़ोकस किए जा सकने वाले सभी एलिमेंट का पाथ मिटाएं
उपयोगकर्ताओं को साफ़ तौर पर निर्देश देकर, अपने यूज़र इंटरफ़ेस (यूआई) पर नेविगेट करने की अनुमति दें. अगर किसी कंट्रोल तक पहुंचने का सीधा रास्ता नहीं है, तो उसे दूसरी जगह ले जाएं.
करें.
यहां दिखाए गए खोज ऐक्शन जैसे कंट्रोल को ऐसी जगहों पर रखें जहां वे क्लिक किए जा सकने वाले अन्य एलिमेंट के साथ ओवरलैप न हों.
ऐसा न करें.
ऐसे लेआउट का इस्तेमाल न करें जिनमें कंट्रोल ऐसी जगहों पर मौजूद हों जहां पहुंचना मुश्किल हो. यहां दिखाई गई खोज कार्रवाई तक पहुंचने में, डी-पैड का इस्तेमाल करना मुश्किल हो सकता है.
ऐक्सिज़
हॉरिजॉन्टल और वर्टिकल, दोनों ऐक्सिस का फ़ायदा पाने के लिए, अपने लेआउट को डिज़ाइन करें. हर दिशा के लिए कोई खास फ़ंक्शन असाइन करें, ताकि बड़ी हाइरारकी में तेज़ी से नेविगेट किया जा सके.
करें.
वर्टिकल ऐक्सिस पर कैटगरी और हॉरिज़ॉन्टल ऐक्सिस पर हर कैटगरी में मौजूद आइटम देखे जा सकते हैं.
ऐसा न करें.
लेआउट की जटिल और नेस्ट की गई हैरारकी से बचें.