नेविगेशन से उन इंटरैक्शन का पता चलता है जिनकी मदद से उपयोगकर्ता, आपके ऐप्लिकेशन में मौजूद अलग-अलग कॉन्टेंट पर नेविगेट कर पाते हैं.
Android Jetpack के नेविगेशन कॉम्पोनेंट में नेविगेशन लाइब्रेरी, Safe Args Gradle प्लग-इन, और टूल शामिल हैं. इनकी मदद से, ऐप्लिकेशन नेविगेशन को लागू किया जा सकता है. नेविगेशन कॉम्पोनेंट, नेविगेशन के अलग-अलग इस्तेमाल के उदाहरणों को मैनेज करता है. इनमें, बटन पर सीधे क्लिक करने से लेकर, ऐप्लिकेशन बार और नेविगेशन पैनल जैसे ज़्यादा जटिल पैटर्न शामिल हैं.
खास कॉन्सेप्ट
यहां दी गई टेबल में, नेविगेशन के मुख्य कॉन्सेप्ट और उन्हें लागू करने के लिए इस्तेमाल किए जाने वाले मुख्य टाइप के बारे में खास जानकारी दी गई है.
कॉन्सेप्ट |
मकसद |
टाइप |
---|---|---|
होस्ट |
यूज़र इंटरफ़ेस (यूआई) एलिमेंट, जिसमें मौजूदा नेविगेशन डेस्टिनेशन शामिल होता है. इसका मतलब है कि जब कोई उपयोगकर्ता किसी ऐप्लिकेशन में नेविगेट करता है, तो ऐप्लिकेशन नेविगेशन होस्ट में डेस्टिनेशन को अंदर और बाहर स्वैप करता है. |
|
ग्राफ़ |
एक डेटा स्ट्रक्चर, जो ऐप्लिकेशन में मौजूद सभी नेविगेशन डेस्टिनेशन के बारे में बताता है. साथ ही, यह भी बताता है कि वे एक-दूसरे से कैसे जुड़े हैं. |
|
कंट्रोलर |
डेस्टिनेशन के बीच नेविगेशन को मैनेज करने के लिए, मुख्य कोऑर्डिनेटर. कंट्रोलर से, डेस्टिनेशन के बीच नेविगेट करने, डीप लिंक मैनेज करने, बैक स्टैक मैनेज करने वगैरह के तरीके मिलते हैं. |
|
डेस्टिनेशन |
नेविगेशन ग्राफ़ में मौजूद कोई नोड. जब उपयोगकर्ता इस नोड पर जाता है, तो होस्ट अपना कॉन्टेंट दिखाता है. |
आम तौर पर, नेविगेशन ग्राफ़ बनाते समय बनाया जाता है. |
रास्ता |
किसी डेस्टिनेशन और उसके लिए ज़रूरी डेटा की खास तौर पर पहचान करता है. रास्तों का इस्तेमाल करके नेविगेट किया जा सकता है. रूट की मदद से, आपको मंज़िल तक पहुंचने में मदद मिलती है. |
सीरियलाइज़ किया जा सकने वाला कोई भी डेटा टाइप. |
फ़ायदे और सुविधाएं
नेविगेशन कॉम्पोनेंट से कई अन्य फ़ायदे और सुविधाएं मिलती हैं. इनमें ये भी शामिल हैं:
- ऐनिमेशन और ट्रांज़िशन: ऐनिमेशन और ट्रांज़िशन के लिए स्टैंडर्ड संसाधन उपलब्ध कराता है.
- डीप लिंकिंग: उपयोगकर्ता को सीधे किसी डेस्टिनेशन पर ले जाने वाले डीप लिंक लागू और मैनेज करता है.
- यूज़र इंटरफ़ेस (यूआई) पैटर्न: इसमें नेविगेशन पैनल और सबसे नीचे मौजूद नेविगेशन जैसे पैटर्न काम करते हैं. इसके लिए, आपको ज़्यादा काम नहीं करना पड़ता.
- टाइप सेफ़्टी: इसमें टाइप सेफ़्टी की मदद से, डेस्टिनेशन के बीच डेटा भेजने की सुविधा शामिल है.
- ViewModel की सहायता:
ViewModel
को नेविगेशन ग्राफ़ में स्कोप करने की सुविधा देता है, ताकि ग्राफ़ के डेस्टिनेशन के बीच यूज़र इंटरफ़ेस (यूआई) से जुड़ा डेटा शेयर किया जा सके. - फ़्रैगमेंट लेन-देन: यह फ़्रैगमेंट लेन-देन के साथ पूरी तरह से काम करता है और उन्हें मैनेज करता है.
- बैक और अप: डिफ़ॉल्ट रूप से, बैक और अप ऐक्शन सही तरीके से हैंडल करता है.
अपना एनवायरमेंट सेट अप करना
अपने प्रोजेक्ट में नेविगेशन की सुविधा शामिल करने के लिए, अपने ऐप्लिकेशन की build.gradle
फ़ाइल में ये डिपेंडेंसी जोड़ें:
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21' } dependencies { def nav_version = "2.8.8" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // JSON serialization library, works with the Kotlin serialization plugin. implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3" }
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments kotlin("plugin.serialization") version "2.0.21" } dependencies { val nav_version = "2.8.8" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // JSON serialization library, works with the Kotlin serialization plugin implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") }
अपने प्रोजेक्ट में अन्य आर्किटेक्चर कॉम्पोनेंट जोड़ने के बारे में जानने के लिए, अपने प्रोजेक्ट में कॉम्पोनेंट जोड़ना लेख पढ़ें.
अगले चरण
नेविगेशन कॉम्पोनेंट से जुड़े ज़्यादा दस्तावेज़ और संसाधनों के लिए, यहां दिए गए संसाधन देखें.
ज़्यादा जानकारी वाली गाइड
नेविगेशन होस्ट और NavController
को लागू करने के तरीके के बारे में ज़्यादा जानने के लिए,
साथ ही, यह जानने के लिए कि ये Compose और अन्य यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क के साथ कैसे इंटरैक्ट करते हैं,
इन गाइड को देखें:
- नेविगेशन कंट्रोलर बनाना: इसमें
NavController
बनाने का तरीका बताया गया है. - नेविगेशन ग्राफ़ बनाना: नेविगेशन होस्ट और नेविगेशन ग्राफ़ बनाने का तरीका.
- किसी डेस्टिनेशन पर जाएं: इस वीडियो में, ग्राफ़ में मौजूद डेस्टिनेशन के बीच जाने के लिए,
NavController
का इस्तेमाल करने का तरीका बताया गया है.
कोडलैब
- Jetpack Navigation के बारे में जानें
- फ़्रैगमेंट और नेविगेशन कॉम्पोनेंट
- डाइनैमिक नेविगेशन की सुविधा वाला ऐप्लिकेशन बनाना
वीडियो
- नेविगेशन में नेविगेट करना
- एक गतिविधि पर स्विच करने के 10 सबसे सही तरीके
- सिंगल गतिविधि: क्यों, कब, और कैसे (Android डेवलपर सम्मेलन '18)
- Android Jetpack: नेविगेशन कंट्रोलर की मदद से यूज़र इंटरफ़ेस (यूआई) नेविगेशन मैनेज करना (Google I/O '18)
सैंपल
These samples showcase different architectural approaches to developing Android apps. In its different branches you'll find the same app (a TODO app) implemented with small differences.
In this branch you'll find:
User Interface built with Jetpack Jetchat is a sample chat app built with Jetpack Compose.
To try out this sample app, use the latest stable version of Android Studio. You can clone this repository or import the project from Android Studio following the steps here.
This sample Jetcaster is a sample podcast app, built with Jetpack Compose. The goal of the sample is to showcase building with Compose across multiple form factors (mobile, TV, and Wear) and full featured architecture.
To try out this sample app, use the latest Jetsnack is a sample snack ordering app built with Jetpack Compose.
To try out this sample app, use the latest stable version of Android Studio. You can clone this repository or import the project from Android Studio following the steps here.
This Jetnews is a sample news reading app, built with Jetpack Compose. The goal of the sample is to showcase the current UI capabilities of Compose.
To try out this sample app, use the latest stable version of Android Studio. You can clone this repository Learn how this app was designed and built in the design case study, architecture learning journey and modularization learning journey.
This is the repository for the Now in Android app. It is a work in progress 🚧.
Now in Android is a fully functionalArchitecture
Jetchat sample
Jetcaster sample 🎙️
Jetsnack sample
Jetnews sample
Now in Android App