নেভিগেশন

নেভিগেশন এমন মিথস্ক্রিয়াগুলিকে বোঝায় যা ব্যবহারকারীদের আপনার অ্যাপের মধ্যে বিভিন্ন বিষয়বস্তু জুড়ে নেভিগেট করতে, ভিতরে যেতে এবং ব্যাক আউট করতে দেয়।

অ্যান্ড্রয়েড জেটপ্যাকের নেভিগেশন কম্পোনেন্টের মধ্যে রয়েছে নেভিগেশন লাইব্রেরি , সেফ আর্গস গ্রেডল প্লাগ-ইন এবং অ্যাপ নেভিগেশন বাস্তবায়নে সাহায্য করার জন্য টুলিং। নেভিগেশন উপাদানটি বিভিন্ন নেভিগেশন ব্যবহারের ক্ষেত্রে পরিচালনা করে, সোজা বাটন ক্লিক থেকে শুরু করে আরও জটিল প্যাটার্ন, যেমন অ্যাপ বার এবং নেভিগেশন ড্রয়ার পর্যন্ত।

মূল ধারণা

নিম্নলিখিত টেবিলটি নেভিগেশনের মূল ধারণাগুলির একটি ওভারভিউ প্রদান করে এবং আপনি সেগুলি বাস্তবায়নের জন্য ব্যবহার করেন এমন প্রধান প্রকারগুলি।

ধারণা

উদ্দেশ্য

টাইপ

হোস্ট

একটি UI উপাদান যা বর্তমান নেভিগেশন গন্তব্য ধারণ করে। অর্থাৎ, যখন একজন ব্যবহারকারী একটি অ্যাপের মাধ্যমে নেভিগেট করেন, অ্যাপটি মূলত নেভিগেশন হোস্টের মধ্যে এবং বাইরে গন্তব্য অদলবদল করে।

গ্রাফ

একটি ডেটা স্ট্রাকচার যা অ্যাপের মধ্যে সমস্ত নেভিগেশন গন্তব্য সংজ্ঞায়িত করে এবং কীভাবে তারা একসাথে সংযুক্ত হয়।

NavGraph

নিয়ন্ত্রক

গন্তব্যের মধ্যে নেভিগেশন পরিচালনার জন্য কেন্দ্রীয় সমন্বয়কারী। নিয়ন্ত্রক গন্তব্যগুলির মধ্যে নেভিগেট করার, গভীর লিঙ্কগুলি পরিচালনা, ব্যাক স্ট্যাক পরিচালনা এবং আরও অনেক কিছুর জন্য পদ্ধতি অফার করে।

NavController

গন্তব্য

নেভিগেশন গ্রাফে একটি নোড। যখন ব্যবহারকারী এই নোডে নেভিগেট করে, হোস্ট তার বিষয়বস্তু প্রদর্শন করে।

NavDestination

ন্যাভিগেশন গ্রাফ তৈরি করার সময় সাধারণত তৈরি হয়।

রুট

স্বতন্ত্রভাবে একটি গন্তব্য এবং এটির জন্য প্রয়োজনীয় কোনো ডেটা সনাক্ত করে।

আপনি রুট ব্যবহার করে নেভিগেট করতে পারেন. রুট আপনাকে গন্তব্যে নিয়ে যায়।

যেকোন সিরিয়ালাইজেবল ডাটা টাইপ।

সুবিধা এবং বৈশিষ্ট্য

নেভিগেশন উপাদান নিম্নলিখিত সহ অন্যান্য সুবিধা এবং বৈশিষ্ট্যগুলির একটি সংখ্যা প্রদান করে:

  • অ্যানিমেশন এবং ট্রানজিশন: অ্যানিমেশন এবং ট্রানজিশনের জন্য প্রমিত সংস্থান সরবরাহ করে।
  • ডিপ লিঙ্কিং: ডিপ লিঙ্কগুলিকে প্রয়োগ করে এবং পরিচালনা করে যা ব্যবহারকারীকে সরাসরি একটি গন্তব্যে নিয়ে যায়।
  • UI প্যাটার্ন: ন্যাভিগেশন ড্রয়ার এবং ন্যূনতম অতিরিক্ত কাজের সাথে নীচের নেভিগেশনের মতো প্যাটার্নগুলিকে সমর্থন করে।
  • প্রকার নিরাপত্তা: টাইপ নিরাপত্তা সহ গন্তব্যের মধ্যে ডেটা পাস করার জন্য সমর্থন অন্তর্ভুক্ত করে।
  • ভিউমডেল সমর্থন: গ্রাফের গন্তব্যগুলির মধ্যে UI-সম্পর্কিত ডেটা ভাগ করতে একটি নেভিগেশন গ্রাফে একটি ViewModel স্কোপিং সক্ষম করে৷
  • খণ্ড লেনদেন: সম্পূর্ণরূপে সমর্থন করে এবং খণ্ড লেনদেন পরিচালনা করে।
  • ব্যাক এবং আপ: ডিফল্টরূপে ব্যাক এবং আপ অ্যাকশন সঠিকভাবে পরিচালনা করে।

আপনার পরিবেশ সেট আপ করুন

আপনার প্রকল্পে নেভিগেশন সমর্থন অন্তর্ভুক্ত করতে, আপনার অ্যাপের build.gradle ফাইলে নিম্নলিখিত নির্ভরতা যোগ করুন:

GroovyKotlin
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 ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করে তার বিশদ বিবরণের জন্য, নিম্নলিখিত নির্দেশিকাগুলি দেখুন:

কোডল্যাব

ভিডিও

নমুনা

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

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