नेविगेशन 3

Navigation 3, नेविगेशन की नई लाइब्रेरी है. इसे Compose के साथ काम करने के लिए डिज़ाइन किया गया है. Navigation 3 की मदद से, बैक स्टैक को पूरी तरह से कंट्रोल किया जा सकता है. साथ ही, डेस्टिनेशन पर जाना और वहां से वापस आना उतना ही आसान है जितना किसी सूची में आइटम जोड़ना और हटाना. यह ऐप्लिकेशन में नेविगेट करने के लिए, आसान सिस्टम बनाता है. इसके लिए, यह इन सुविधाओं का इस्तेमाल करता है:

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

बड़े लेवल पर, Navigation 3 को इन तरीकों से लागू किया जाता है:

  1. उस कॉन्टेंट के बारे में बताएं जिसे उपयोगकर्ता आपके ऐप्लिकेशन में नेविगेट कर सकते हैं. हर कॉन्टेंट के लिए एक यूनीक कुंजी तय करें. साथ ही, उस कुंजी को कॉन्टेंट से जोड़ने के लिए एक फ़ंक्शन जोड़ें. कॉन्टेंट के लिए कुंजियां ठीक करना लेख पढ़ें.
  2. एक बैक स्टैक बनाएं, जिसमें कुंजियां पुश की जाती हैं और जब उपयोगकर्ता आपके ऐप्लिकेशन पर नेविगेट करते हैं, तो उन्हें हटाया जाता है. बैक स्टैक बनाना लेख पढ़ें.
  3. अपने ऐप्लिकेशन के बैक स्टैक को दिखाने के लिए, NavDisplay का इस्तेमाल करें. जब भी बैक स्टैक बदलता है, तो यह यूज़र इंटरफ़ेस (यूआई) को अपडेट करता है, ताकि काम का कॉन्टेंट दिखाया जा सके. बैक स्टैक दिखाना लेख पढ़ें.
  4. अनुकूलित लेआउट और अलग-अलग प्लैटफ़ॉर्म के साथ काम करने के लिए, ज़रूरत के मुताबिक NavDisplay के सीन की रणनीतियों में बदलाव करें.

AOSP पर, Navigation 3 का पूरा सोर्स कोड देखा जा सकता है.

Jetpack Navigation में किए गए सुधार

Navigation 3, ओरिजनल Jetpack Navigation API से इन मामलों में बेहतर है:

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

इस ब्लॉग पोस्ट में, Navigation 3 के सिद्धांतों और एपीआई डिज़ाइन के विकल्पों के बारे में ज़्यादा जानें.

कोड सैंपल

रेसिपी रिपॉज़िटरी में, नेविगेशन से जुड़ी सामान्य समस्याओं को हल करने के लिए, नेविगेशन 3 के बिल्डिंग ब्लॉक इस्तेमाल करने के उदाहरण दिए गए हैं.