नेविगेशन 3

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

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

नेविगेशन 3 को बड़े लेवल पर लागू करने के लिए, ये तरीके अपनाएं:

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

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

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

नेविगेशन 3, मूल Jetpack Navigation API को इन तरीकों से बेहतर बनाता है:

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

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

कोड के सैंपल

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