নেভিগেশন এমন মিথস্ক্রিয়াগুলিকে বোঝায় যা ব্যবহারকারীদের আপনার অ্যাপের মধ্যে বিভিন্ন বিষয়বস্তু জুড়ে নেভিগেট করতে, ভিতরে যেতে এবং ব্যাক আউট করতে দেয়।
অ্যান্ড্রয়েড জেটপ্যাকের নেভিগেশন কম্পোনেন্টের মধ্যে রয়েছে নেভিগেশন লাইব্রেরি , সেফ আর্গস গ্রেডল প্লাগ-ইন এবং অ্যাপ নেভিগেশন বাস্তবায়নে সাহায্য করার জন্য টুলিং। নেভিগেশন উপাদানটি বিভিন্ন নেভিগেশন ব্যবহারের ক্ষেত্রে পরিচালনা করে, সোজা বাটন ক্লিক থেকে শুরু করে আরও জটিল প্যাটার্ন, যেমন অ্যাপ বার এবং নেভিগেশন ড্রয়ার পর্যন্ত।
মূল ধারণা
নিম্নলিখিত টেবিলটি নেভিগেশনের মূল ধারণাগুলির একটি ওভারভিউ প্রদান করে এবং আপনি সেগুলি বাস্তবায়নের জন্য ব্যবহার করেন এমন প্রধান প্রকারগুলি।
ধারণা | উদ্দেশ্য | টাইপ |
---|---|---|
হোস্ট | একটি UI উপাদান যা বর্তমান নেভিগেশন গন্তব্য ধারণ করে। অর্থাৎ, যখন একজন ব্যবহারকারী একটি অ্যাপের মাধ্যমে নেভিগেট করেন, অ্যাপটি মূলত নেভিগেশন হোস্টের মধ্যে এবং বাইরে গন্তব্য অদলবদল করে। |
|
গ্রাফ | একটি ডেটা স্ট্রাকচার যা অ্যাপের মধ্যে সমস্ত নেভিগেশন গন্তব্য সংজ্ঞায়িত করে এবং কীভাবে তারা একসাথে সংযুক্ত হয়। | |
নিয়ন্ত্রক | গন্তব্যের মধ্যে নেভিগেশন পরিচালনার জন্য কেন্দ্রীয় সমন্বয়কারী। নিয়ন্ত্রক গন্তব্যগুলির মধ্যে নেভিগেট করার, গভীর লিঙ্কগুলি পরিচালনা, ব্যাক স্ট্যাক পরিচালনা এবং আরও অনেক কিছুর জন্য পদ্ধতি অফার করে। | |
গন্তব্য | নেভিগেশন গ্রাফে একটি নোড। যখন ব্যবহারকারী এই নোডে নেভিগেট করে, হোস্ট তার বিষয়বস্তু প্রদর্শন করে। | ন্যাভিগেশন গ্রাফ তৈরি করার সময় সাধারণত তৈরি হয়। |
রুট | স্বতন্ত্রভাবে একটি গন্তব্য এবং এটির জন্য প্রয়োজনীয় কোনো ডেটা সনাক্ত করে। আপনি রুট ব্যবহার করে নেভিগেট করতে পারেন. রুট আপনাকে গন্তব্যে নিয়ে যায়। | যেকোন সিরিয়ালাইজেবল ডাটা টাইপ। |
সুবিধা এবং বৈশিষ্ট্য
নেভিগেশন উপাদান নিম্নলিখিত সহ অন্যান্য সুবিধা এবং বৈশিষ্ট্যগুলির একটি সংখ্যা প্রদান করে:
- অ্যানিমেশন এবং ট্রানজিশন: অ্যানিমেশন এবং ট্রানজিশনের জন্য প্রমিত সংস্থান সরবরাহ করে।
- ডিপ লিঙ্কিং: ডিপ লিঙ্কগুলিকে প্রয়োগ করে এবং পরিচালনা করে যা ব্যবহারকারীকে সরাসরি একটি গন্তব্যে নিয়ে যায়।
- UI প্যাটার্ন: ন্যাভিগেশন ড্রয়ার এবং ন্যূনতম অতিরিক্ত কাজের সাথে নীচের নেভিগেশনের মতো প্যাটার্নগুলিকে সমর্থন করে।
- প্রকার নিরাপত্তা: টাইপ নিরাপত্তা সহ গন্তব্যের মধ্যে ডেটা পাস করার জন্য সমর্থন অন্তর্ভুক্ত করে।
- ভিউমডেল সমর্থন: গ্রাফের গন্তব্যগুলির মধ্যে UI-সম্পর্কিত ডেটা ভাগ করতে একটি নেভিগেশন গ্রাফে একটি
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.9" // 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.9" // 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
কিভাবে প্রয়োগ করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, সেইসাথে তারা কীভাবে রচনা এবং অন্যান্য UI ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করে তার বিশদ বিবরণের জন্য, নিম্নলিখিত নির্দেশিকাগুলি দেখুন:
- একটি নেভিগেশন কন্ট্রোলার তৈরি করুন : একটি
NavController
কীভাবে তৈরি করবেন তার রূপরেখা। - আপনার নেভিগেশন গ্রাফ তৈরি করুন : একটি নেভিগেশন হোস্ট এবং একটি নেভিগেশন গ্রাফ কীভাবে তৈরি করবেন তার বিশদ বিবরণ।
- একটি গন্তব্যে নেভিগেট করুন : আপনার গ্রাফে গন্তব্যগুলির মধ্যে স্থানান্তর করতে একটি
NavController
কীভাবে ব্যবহার করবেন তা প্রদর্শন করে৷
কোডল্যাব
ভিডিও
- নেভিগেশন নেভিগেশন
- একটি একক কার্যকলাপে যাওয়ার জন্য 10টি সেরা অনুশীলন
- একক কার্যকলাপ: কেন, কখন, এবং কিভাবে (Android Dev Summit '18)
- অ্যান্ড্রয়েড জেটপ্যাক: নেভিগেশন কন্ট্রোলারের সাথে UI নেভিগেশন পরিচালনা করুন (Google I/O '18)
নমুনা
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 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 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 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 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 functionalJetsnack sample
Jetcaster sample 🎙️
Jetchat sample
Architecture
Jetnews sample
Now in Android App