टियर 2 — अडैप्टिव ऑप्टिमाइज़ेशन

ऑप्टिमाइज़ किए गए ऐप्लिकेशन, सभी तरह की स्क्रीन और डिवाइस की स्थितियों के साथ पूरी तरह से काम करते हैं. इनमें स्टेट ट्रांज़िशन भी शामिल हैं.

क्वालिटी के तीन टियर को वर्टिकल तौर पर स्टैक की गई लेयर के तौर पर दिखाया गया है. इसमें बीच वाले टियर को हाइलाइट किया गया है.

दिशा-निर्देश

अपने ऐप्लिकेशन को इस तरह से बनाएं कि वह सभी डिसप्ले साइज़ और डिवाइस की स्थितियों के हिसाब से काम कर सके.

बेहतर यूज़र इंटरफ़ेस

दिशा-निर्देश का आईडी टेस्ट आईडी ब्यौरा
Responsive_adaptive_layouts T-Layout_Flow

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

ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में ये चीज़ें शामिल हो सकती हैं:

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

बड़ी स्क्रीन पर मौजूद जगह का फ़ायदा पाने के लिए, मल्टी-पैन लेआउट बनाएं. कैननिकल लेआउट देखें.

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

UI_Secondary_Elements T-Layout_Flow

सभी तरह की स्क्रीन और डिवाइस की स्थितियों के लिए, मोडल, कॉन्टेक्स्ट मेन्यू, और अन्य सेकंडरी एलिमेंट को सही तरीके से फ़ॉर्मैट किया गया है. उदाहरण के लिए:

  • बड़ी स्क्रीन पर बॉटम शीट पूरी चौड़ाई में नहीं दिखती हैं. (ज़्यादा चौड़ाई लागू करें, ताकि इमेज स्ट्रेच न हो.) Sheets: bottom में Behavior देखें.
  • बड़ी स्क्रीन पर बटन पूरी चौड़ाई में नहीं दिख रहे हैं. बटन में व्यवहार देखें.
  • टेक्स्ट फ़ील्ड और बॉक्स, बड़ी स्क्रीन पर पूरी चौड़ाई में नहीं दिखते. टेक्स्ट फ़ील्ड में व्यवहार देखें.
  • छोटे बदलाव वाले मेन्यू या मॉडल, पूरी स्क्रीन को नहीं घेरते. साथ ही, उपयोगकर्ता के लिए कॉन्टेक्स्ट को ज़्यादा से ज़्यादा बनाए रखते हैं. मेन्यू देखें.
  • कॉन्टेक्स्ट मेन्यू, उपयोगकर्ता के चुने गए आइटम के बगल में दिखते हैं. मेन्यू में "कॉन्टेक्स्ट मेन्यू" विषय देखें.
  • नेविगेशन बार की जगह नेविगेशन रेल का इस्तेमाल किया जाता है, ताकि बड़ी स्क्रीन पर बेहतर तरीके से काम किया जा सके. नेविगेशन रेल देखें.
  • नेविगेशन ड्रॉअर को, बड़े किए गए नेविगेशन रेल में अपडेट किया गया है. नेविगेशन पैनल देखें.
  • डायलॉग बॉक्स को नए मटीरियल कॉम्पोनेंट पर अपडेट किया गया है. डायलॉग देखें.
  • इमेज सही रिज़ॉल्यूशन में दिख रही हैं. साथ ही, उन्हें न तो खींचा गया है और न ही काटा गया है.
Touch_Targets T-Touch_Targets टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई ऐक्शन होता है) कम से कम 48dp के हों. Material Design के लेआउट और टाइपोग्राफ़ी से जुड़े दिशा-निर्देश देखें.
Drawable_Focus T-Drawable_Focus इंटरैक्टिव कस्टम ड्रॉएबल के लिए, फ़ोकस की गई स्थिति बनाई जाती है. कस्टम ड्रॉएबल, कोई भी ऐसा विज़ुअल यूज़र इंटरफ़ेस (यूआई) एलिमेंट होता है जो Android फ़्रेमवर्क से नहीं मिलता है. अगर उपयोगकर्ता किसी कस्टम ड्रॉअबल के साथ इंटरैक्ट कर सकते हैं, तो डिवाइस के टच मोड में न होने पर, ड्रॉअबल को फ़ोकस किया जा सकना चाहिए. साथ ही, फ़ोकस किए गए स्टेट का विज़ुअल इंडिकेशन साफ़ तौर पर दिखना चाहिए.

कीबोर्ड, माउस, और ट्रैकपैड

दिशा-निर्देश का आईडी टेस्ट आईडी ब्यौरा
Keyboard_Navigation T-Keyboard_Navigation ऐप्लिकेशन में मुख्य टास्क फ़्लो, कीबोर्ड नेविगेशन के साथ काम करते हैं. इनमें Tab और ऐरो बटन से नेविगेट करने की सुविधा शामिल है. ज़्यादा सुलभ ऐप्लिकेशन बनाना लेख पढ़ें.
Keyboard_Shortcuts T-Keyboard_Shortcuts यह ऐप्लिकेशन, अक्सर इस्तेमाल की जाने वाली कार्रवाइयों के लिए कीबोर्ड शॉर्टकट की सुविधा देता है. जैसे, चुनना, काटना, कॉपी करना, चिपकाना, पहले जैसा करना, और फिर से करना. कीबोर्ड, माउस, और ट्रैकपैड लेख पढ़ें.
Keyboard_Media_Playback T-Keyboard_Media_Playback कीबोर्ड का इस्तेमाल करके, मीडिया प्लेबैक को कंट्रोल किया जा सकता है. उदाहरण के लिए, स्पेसबार दबाकर मीडिया को चलाया और रोका जा सकता है.
Keyboard_Send T-Keyboard_Send कम्यूनिकेशन ऐप्लिकेशन में, कीबोर्ड की Enter कुंजी से भेजें फ़ंक्शन काम करता है.
Keyboard_Exit T-Keyboard_Exit कीबोर्ड पर मौजूद Esc बटन, exit फ़ंक्शन को पूरा करता है. यह फ़ंक्शन, किसी कार्रवाई को खत्म करता है या उसे पहले जैसा कर देता है. उदाहरण के लिए:
  • मोडल, डायलॉग, पॉप-अप, और मेन्यू बंद करता है
  • इससे खोज के लिए डाला गया टेक्स्ट मिट जाता है या खोज पर से फ़ोकस हट जाता है
  • कीबोर्ड फ़ोकस रद्द करता है
  • इससे फ़ुल-स्क्रीन वीडियो, PiP, फ़ुल-स्क्रीन मोड या स्लाइड शो बंद हो जाते हैं
  • स्क्रीन पर मौजूद कंट्रोल, जैसे कि प्रोग्रेस बार या मेन्यू को खारिज करता है
  • 'अगला' / अपने-आप चलने की सुविधा वाले टाइमर रद्द करता है
  • चुने गए सभी आइटम से चुने हुए का निशान हटाता है
  • यह कुकी, नाम बदलने या बदलाव करने की प्रोसेस को बिना सेव किए बंद कर देती है
  • क्रॉप करने/ट्रांसफ़ॉर्म करने वाले टूल से बाहर निकलता है और बदलावों को खारिज करता है
Context_Menus T-Context_Menus संदर्भ मेन्यू को, माउस और ट्रैकपैड के सामान्य राइट क्लिक (माउस का दूसरा बटन या दूसरा टैप) से ऐक्सेस किया जा सकता है.
Content_Zoom T-Content_Zoom ऐप्लिकेशन के कॉन्टेंट को ज़ूम करने के लिए, माउस के स्क्रोल व्हील का इस्तेमाल किया जा सकता है. इसके लिए, Control या Ctrl बटन को दबाकर रखें. इसके अलावा, ट्रैकपैड पर पिंच जेस्चर का इस्तेमाल करके भी ऐसा किया जा सकता है.
Hover_States T-Hover_States कार्रवाई करने लायक यूज़र इंटरफ़ेस (यूआई) एलिमेंट में, होवर स्टेट (जहां ज़रूरी हो) होती हैं. इससे माउस और ट्रैकपैड का इस्तेमाल करने वाले लोगों को पता चलता है कि एलिमेंट इंटरैक्टिव हैं.

टेस्ट अपडेट

यह पक्का करने के लिए कि आपका ऐप्लिकेशन सभी डिसप्ले कॉन्फ़िगरेशन के लिए ऑप्टिमाइज़ किया गया हो और रिस्पॉन्सिव हो, ये टेस्ट करें.

बेहतर यूज़र इंटरफ़ेस

परीक्षण आईडी दिशा-निर्देशों के आईडी ब्यौरा
T-Layout_Flow Responsive_adaptive_layouts,
UI_Secondary_Elements

ऐप्लिकेशन को अलग-अलग साइज़ वाली स्क्रीन वाले डिवाइसों पर चलाएं. जैसे, फ़ोन, फ़ोल्ड किए जा सकने वाले फ़ोन, छोटे और बड़े टैबलेट, और डेस्कटॉप डिवाइस. डिवाइसों पर ऐप्लिकेशन को मल्टी-विंडो मोड में चलाएं.

पुष्टि करें कि ऐप्लिकेशन का लेआउट, अलग-अलग स्क्रीन और विंडो साइज़ के हिसाब से रिस्पॉन्सिव है और उनके मुताबिक अडजस्ट हो जाता है. देखें कि क्या ऐप्लिकेशन, नेविगेशन रेल को बड़ा और छोटा करता है, ग्रिड लेआउट में कॉलम की संख्या को बढ़ाता और घटाता है, टेक्स्ट को कॉलम में फ़्लो करता है वगैरह. देखें कि यूज़र इंटरफ़ेस (यूआई) के एलिमेंट, दिखने में अच्छे और काम के हों.

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

T-Touch_Targets Touch_Targets पुष्टि करें कि सभी डिसप्ले साइज़ और कॉन्फ़िगरेशन के लिए, टच टारगेट का साइज़ और पोज़िशन एक जैसी हो और उसे आसानी से ऐक्सेस किया जा सके. साथ ही, यह भी पक्का करें कि टच टारगेट, अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट से छिपा न हो. सुलभता के बारे में जानकारी के लिए, Accessibility Scanner देखें.
T-Drawable_Focus Drawable_Focus ऐप्लिकेशन की हर उस स्क्रीन पर जिसमें इंटरैक्टिव कस्टम ड्रॉएबल मौजूद है, यह पुष्टि करें कि ड्रॉएबल पर फ़ोकस किया जा सकता है. इसके लिए, बाहरी कीबोर्ड, डी-पैड या यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर फ़ोकस करने की सुविधा देने वाले किसी अन्य डिवाइस का इस्तेमाल करें. पुष्टि करें कि फ़ोकस किए गए एलिमेंट की स्थिति साफ़ तौर पर दिख रही हो. इससे जुड़ी जानकारी के लिए, Compose फ़ोकस का दस्तावेज़ देखें.

कीबोर्ड, माउस, और ट्रैकपैड

परीक्षण आईडी दिशा-निर्देशों के आईडी ब्यौरा
T-Keyboard_Navigation T-Keyboard_Navigation किसी बाहरी कीबोर्ड के Tab और ऐरो बटन का इस्तेमाल करके, ऐप्लिकेशन के फ़ोकस किए जा सकने वाले कॉम्पोनेंट पर जाएं.
T-Keyboard_Shortcuts Keyboard_Shortcuts चुनिंदा, कट, कॉपी, चिपकाएं, पहले जैसा करें, और फिर से करें कार्रवाइयां करने के लिए, बाहरी कीबोर्ड पर कीबोर्ड शॉर्टकट का इस्तेमाल करें.
T-Keyboard_Media_Playback Keyboard_Media_Playback मीडिया चलाने, रोकने, कुछ देर के लिए रोकने, रिवाइंड करने, और फ़ास्ट फ़ॉरवर्ड करने के लिए, एक्सटर्नल कीबोर्ड का इस्तेमाल करें.
T-Keyboard_Send Keyboard_Send डेटा भेजने या सबमिट करने के लिए, बाहरी कीबोर्ड की Enter कुंजी का इस्तेमाल करें.
T-Keyboard_Exit Keyboard_Exit

बाहर निकलने के लिए, बाहरी कीबोर्ड के Esc बटन का इस्तेमाल करें. पुष्टि करें कि कुंजी ये काम करती हो (जहां लागू हो):

  • मोडल, डायलॉग, पॉप-अप, और मेन्यू बंद करता है
  • इससे खोज के लिए डाला गया टेक्स्ट मिट जाता है या खोज पर से फ़ोकस हट जाता है
  • कीबोर्ड फ़ोकस रद्द करता है
  • इससे फ़ुल-स्क्रीन वीडियो, PiP, फ़ुल-स्क्रीन मोड या स्लाइड शो बंद हो जाते हैं
  • स्क्रीन पर मौजूद कंट्रोल खारिज करता है
  • 'अगला' / अपने-आप चलने की सुविधा वाले टाइमर रद्द करता है
  • चुने गए सभी आइटम से चुने हुए का निशान हटाता है
  • यह कुकी, नाम बदलने या बदलाव करने की प्रोसेस को बिना सेव किए बंद कर देती है
  • क्रॉप करने/ट्रांसफ़ॉर्म करने वाले टूल से बाहर निकलता है और बदलावों को खारिज करता है
T-Context_Menus Context_Menus इंटरैक्टिव एलिमेंट के कॉन्टेक्स्ट मेन्यू को ऐक्सेस करने के लिए, माउस के सेकंडरी बटन या ट्रैकपैड के सेकंडरी टैप की सुविधा का इस्तेमाल करें.
T-Content_Zoom Content_Zoom कॉन्टेंट को ज़ूम इन और ज़ूम आउट करने के लिए, माउस के स्क्रोल व्हील (Control या Ctrl कुंजी के साथ) और ट्रैकपैड पर पिंच करने के जेस्चर का इस्तेमाल करें.
T-Hover_States Hover_States कार्रवाई करने लायक यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर माउस या ट्रैकपैड कर्सर घुमाएं, ताकि एलिमेंट की होवर स्टेट चालू हो जाए.