टियर 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 है. मटीरियल डिज़ाइन लेआउट और टाइपोग्राफ़ी से जुड़े दिशा-निर्देश देखें.
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 कार्रवाई करने वाले यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर माउस या ट्रैकपैड कर्सर घुमाएं, ताकि एलिमेंट के कर्सर घुमाने पर विज़ुअल में होने वाला बदलाव चालू हो जाए.