নেভিগেশন৩

নেভিগেশন ৩ হলো একটি নতুন নেভিগেশন লাইব্রেরি, যা কম্পোজের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
২৩ সেপ্টেম্বর, ২০২৬ ১.২.০ - - ১.৩.০-আলফা০১

নির্ভরতা ঘোষণা করা

navigation3-এর উপর নির্ভরতা যোগ করতে হলে, আপনাকে আপনার প্রজেক্টে গুগল মেভেন রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য গুগলের মেভেন রিপোজিটরি পড়ুন।

আপনার অ্যাপ বা মডিউলের build.gradle ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টগুলোর ডিপেন্ডেন্সি যোগ করুন:

গ্রোভি

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.3.0-alpha01"
    implementation "androidx.navigation3:navigation3-ui:1.3.0-alpha01"
}

কোটলিন

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.3.0-alpha01")
    implementation("androidx.navigation3:navigation3-ui:1.3.0-alpha01")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, 'বিল্ড নির্ভরতা যোগ করুন ' দেখুন।

প্রতিক্রিয়া

আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করে। আপনি যদি নতুন কোনো সমস্যা খুঁজে পান অথবা এই লাইব্রেরিটি উন্নত করার জন্য কোনো ধারণা থাকে, তবে আমাদের জানান। নতুন কোনো সমস্যা তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরির বিদ্যমান সমস্যাগুলো দেখে নিন। আপনি তারকা বোতামে ক্লিক করে কোনো বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ ১.৩

সংস্করণ 1.3.0-alpha01

২৩ সেপ্টেম্বর, ২০২৬

androidx.navigation3:navigation3-*:1.3.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিটগুলো রয়েছে।

ত্রুটি সংশোধন

  • DeferredAnimatedContent এ স্থানান্তরিত করে এবং ট্রানজিশন হ্যান্ডঅফ সমস্যা সমাধান করে NavDisplay তে প্রেডিক্টিভ ব্যাক অ্যানিমেশন হ্যান্ডঅফ ঠিক করা হয়েছে। I145eaedd b/430807423

এই আর্টিফ্যাক্টটির জন্য কোনো রিলিজ নোট নেই।

সংস্করণ ১.২.০

২৩ সেপ্টেম্বর, ২০২৬

androidx.navigation3:navigation3-*:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

১.২.০ এখন স্থিতিশীল!

১.১.০ সংস্করণ থেকে গুরুত্বপূর্ণ পরিবর্তনসমূহ

ফলাফল এপিআই

  • এই নতুন API-টি LocalResultEventBus এবং ResultEventBusNavEntryDecorator দ্বারা প্রদত্ত ResultEventBus ব্যবহার করে NavEntries মধ্যে ফলাফল আদান-প্রদান করার সুযোগ দেয়।
  • ResultEventBusNavEntryDecorator বাইরে একটি ResultEventBus হোইস্ট করার এবং সেটিকে rememberResultEventBusNavEntryDecorator এ পাস করার সুবিধা দিতে rememberResultEventBus যোগ করা হয়েছে।
  • প্রদত্ত ফলাফলগুলো ResultEventBus#conflateAsState ব্যবহার করে স্টেট হিসেবে অ্যাক্সেস করা যায়, অথবা ResultEffect ব্যবহার করে ফলাফলের ফ্লো হিসেবে সংগ্রহ করা যায়।

ডিপ লিঙ্ক এপিআই

Navigation3 এখন androidx.navigation3.runtime.deeplink এ Kotlin Multiplatform (KMP) গভীর লিঙ্কগুলিকে DeepLinkRequest , DeepLinkUri , এবং DeepLinkMatcher এর মাধ্যমে সমর্থন করে৷

  • DeepLinkRequest এবং RequestExtras : একটি DeepLinkUri , একটি URI স্ট্রিং, বা একটি Android Intent থেকে তৈরি একটি ডিপ লিঙ্ক অনুরোধকে বোঝায়। requestExtras DSL এবং RequestExtrasKey<T> দিয়ে তৈরি টাইপ-সেফ RequestExtras কন্টেইনার ব্যবহার করে অতিরিক্ত অনুরোধ মেটাডেটা সংযুক্ত করা যেতে পারে।
  • DeepLinkMatcher : এমন একটি ডিপ লিঙ্ককে বোঝায় যা একটি DeepLinkRequest সাথে মেলানো যায়। প্রতিটি ম্যাচার ইনস্ট্যান্স সেই নেভিগেশন কী-এর সাথে যুক্ত থাকে যা এই ডিপ লিঙ্কটিকে সমর্থন করে। একটি নেভিগেশন কী একাধিক ম্যাচারের সাথে যুক্ত থাকতে পারে। যদি ম্যাচ সফল হয়, তাহলে DeepLinkMatcher.match কল করলে একটি MatchResult রিটার্ন হবে, যাতে সংশ্লিষ্ট নেভিগেশন কী-টি থাকবে। DeepLinkMatcher দুটি ডিফল্ট ইমপ্লিমেন্টেশন রয়েছে: Uri উপর ভিত্তি করে ডিপ লিঙ্ক মেলানোর জন্য UriDeepLinkMatcher , এবং শুধুমাত্র DeepLinkMatcher.Filter ব্যবহার করে বুলিয়ান দ্বারা মেলানো ডিপ লিঙ্ক মেলানোর জন্য StaticKeyDeepLinkMatcher ।
  • BackStackMatcher : একটি DeepLinkMatcher যা একটি সফল ডিপ লিঙ্ক ম্যাচের পর একটি সংশ্লেষিত ব্যাক স্ট্যাক তৈরি করে। BackStackMatcher DeepLinkMatcher.withBackStack এক্সটেনশন ফাংশনের মাধ্যমে তৈরি করা যায়।

ভবিষ্যদ্বাণীমূলক ব্যাক হ্যান্ডলিং

  • প্রেডিক্টিভ ব্যাক হ্যান্ডলিং ( onBackCompleted এবং onBackCancelled )-এর সাথে SceneState সংযুক্ত করার প্রক্রিয়া সহজ করতে NavigationBackHandler এবং rememberNavigationEventState যোগ করা হয়েছে। এর ফলে কাস্টম UI কম্পোনেন্টগুলো ম্যানুয়ালি ব্যাক স্ট্যাক ডেল্টা গণনা না করেই স্ট্যান্ডার্ড ব্যাক নেভিগেশন এবং প্রেডিক্টিভ ব্যাক জেসচার সমর্থন করতে পারে।
  • উন্নত প্রেডিক্টিভ ব্যাক ট্রানজিশন, যার মধ্যে ফরোয়ার্ড অ্যানিমেশনের মাঝপথে ট্রিগার করা প্রেডিক্টিভ ব্যাক জেসচারের সাপোর্ট অন্তর্ভুক্ত রয়েছে।

অন্যান্য পরিবর্তন

  • NavEntry.contentKey এখন ডিফল্টরূপে key.toString() এবং key::class.toString() এর একটি সংমিশ্রণ হিসেবে ব্যবহৃত হয়, যা বিভিন্ন ইন্টারফেসে একই সরল নাম থাকা data object কীগুলির মধ্যে সংঘর্ষ প্রতিরোধ করে।
  • EntryProvider এখন কী টাইপের চেয়ে কী ইনস্ট্যান্সের উপর ভিত্তি করে ম্যাচিংকে অগ্রাধিকার দেয়।
  • Scene ইমপ্লিমেন্টেশনগুলো যেন data class হয় অথবা equals ও hashCode ইমপ্লিমেন্ট করে, তা নিশ্চিত করতে একটি লিন্ট চেক যোগ করা হয়েছে।

সংস্করণ 1.2.0-rc01

০৯ সেপ্টেম্বর, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • ডিপ লিঙ্ক ইউআরআই প্যাটার্নে সদৃশ প্লেসহোল্ডার নাম নিষিদ্ধ করুন। ( I8985c , b/522343165 )

সংস্করণ 1.2.0-beta01

২৬ আগস্ট, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • DeepLinkRequest.extras Map<String, Any> থেকে রিফ্যাক্টর করে RequestExtras নামে একটি নতুন টাইপ-সেফ ম্যাপ-সদৃশ ক্লাসে পরিণত করা হয়েছে, যা RequestExtrasKey<T> থেকে T এর জোড়া সংরক্ষণ করে। requestExtras DSL ব্যবহার করে RequestExtras ইনস্ট্যানশিয়েট করা যায়। ( Ic929d , b/543883369 )

বাগ সংশোধন

  • একটি সমস্যার সমাধান করা হয়েছে যেখানে সামনে যাওয়ার সময় সক্রিয় হওয়া প্রেডিক্টিভ ব্যাক জেসচার, সোয়াইপের অগ্রগতির প্রতিক্রিয়ায় অ্যানিমেট হতো না। এখন থেকে প্রেডিক্টিভ ব্যাক সঠিকভাবে অ্যানিমেট হবে এবং সম্পন্ন হবে। ( Icdcb0 , b/456218398 )
  • Scene ইমপ্লিমেন্টেশনগুলো হয় ডেটা ক্লাস, অথবা equals এবং hashcode ইমপ্লিমেন্ট করে, এটি নিশ্চিত করার জন্য একটি লিন্ট চেক যোগ করা হয়েছে, যাতে প্রয়োজন অনুযায়ী একই Scene ব্যবহৃত হয়। ( Ibdf0d , b/542316099 )
  • NavEntry.contentKey এখন ডিফল্টরূপে key.toString() এবং key::class.toString() এর একটি সংমিশ্রণ হিসেবে ব্যবহৃত হয়। এটি নিশ্চিত করে যে, একই নামের কিন্তু ভিন্ন ইন্টারফেস ইমপ্লিমেন্ট করা ডেটা অবজেক্টগুলোর আর একই contentKey থাকবে না। তবে, JS প্ল্যাটফর্মের key::class সম্পূর্ণ নামের পরিবর্তে শুধুমাত্র সাধারণ ক্লাসের নাম রিটার্ন করে, তাই একই নামের ডেটা অবজেক্টগুলোর জন্য JS প্ল্যাটফর্মের এখনও কাস্টম contentKey ইমপ্লিমেন্ট করা উচিত। ( I1fbbb , b/512534342 )
  • একাধিক পপ ট্রানজিশন চলমান থাকা অবস্থায় দ্রুত ব্যাক নেভিগেশনের জন্য ব্যবহৃত ডুপ্লিকেট কী-এর কারণে SaveableStateProvider দ্বারা নিক্ষিপ্ত IllegalArgumentException সংশোধন করা হয়েছে। ( I4d728 , b/516312097 )

সংস্করণ ১.২.০-আলফা০৭

২৯ জুলাই, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha07-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • আরেকটি DeepLinkMatcher.MatchResult র‍্যাপ করার জন্য একটি অ্যাবস্ট্রাক্ট WrappedMatchResult ক্লাস যোগ করা হয়েছে। এর ফলে কাস্টমাইজড ম্যাচ রেজাল্টের উপর আরেকটি লেয়ার করা যায়। ( I7d4dc , b/470282247 )
  • নতুন BackStackMatcher ক্লাস যোগ করা হয়েছে যা দুটি প্যারামিটার গ্রহণ করে: একটি ম্যাচিং ইনস্ট্যান্স এবং একটি বিল্ডার ল্যাম্বডা যা ইনপুট ম্যাচারের ম্যাচ ফলাফল প্রদান করে এবং একটি ব্যাক স্ট্যাক ফেরত দেয়। সফলভাবে ম্যাচ হলে, BackStackMatcher একটি BackStackMatchResult ফেরত দেয় যা WrappedMatchResult এক্সটেন্ড করে এবং এতে মূল ম্যাচ ফলাফলের সাথে ল্যাম্বডা দিয়ে তৈরি ব্যাক স্ট্যাকটি থাকে। BackStackMatcher শুধুমাত্র নতুন DeepLinkMatcher.withBackStack এক্সটেনশন ফাংশন দিয়ে তৈরি করা যাবে। ( Ibf987 , b/470282247 )

  • একটি অ্যাবস্ট্রাক্ট DeepLinkSerializer ক্লাস যোগ করা হয়েছে যা KSerializer এক্সটেন্ড করে এবং value : T ভ্যালুকে String হিসেবে এনকোড ও ডিকোড করে। DeepLinkSerializer নন-প্রিমিটিভ ডিপ লিঙ্ক আর্গুমেন্টগুলোকে সিরিয়ালাইজ করতে ব্যবহার করা যায়। rememberSaveable এবং rememberNavBackStack সাথে সামঞ্জস্যপূর্ণ। ( Id3c9f , b/470282247 )

  • DeepLinkMatcher out R : DeepLinkMatcher.MatchResult<T> , যাতে ডেভেলপাররা টাইপ কাস্টিং ছাড়াই DeepLinkMatcher.match() দ্বারা রিটার্ন করা সাবক্লাসড MatchResult এর প্রোপার্টিগুলো অ্যাক্সেস করতে পারেন। ( I693d3 , b/470282247 )

  • DeepLinkMatcher.MatchResult's T ঊর্ধ্বসীমা Any? থেকে Any তে পরিবর্তিত হয়েছে। ( I6bf1a )

  • DeepLinkRequest কনস্ট্রাক্টরের ফিল্ড uri এখন থেকে ডিফল্টভাবে null হবে। সেকেন্ডারি কনস্ট্রাক্টরের uriString এর নাম পরিবর্তন করে uri রাখা হয়েছে। ( Ia0f14 , b/522194187 )

বাগ সংশোধন

  • ResultEffect এখন সর্বশেষ onResult ল্যাম্বডা ক্যাপচার করতে rememberUpdatedState ব্যবহার করে। ( I7d2a3 , b/531709234 )
  • খালি পাথ সেগমেন্টের জন্য ডিপ লিঙ্ক ম্যাচিং ঠিক করা হয়েছে। যদি আর্গুমেন্টের টাইপ স্ট্রিং হয়, তাহলে খালি পাথটিকে একটি খালি স্ট্রিং ভ্যালু হিসেবে গণ্য করা হবে। অন্যথায়, খালি পাথটিকে কোনো ভ্যালু প্রদান করা হয়নি বলে গণ্য করা হবে এবং এটি ডিফল্ট ভ্যালুতে ফিরে যাবে। যদি কোনো ডিফল্ট ভ্যালু না থাকে, তাহলে ম্যাচিং ব্যর্থ হবে। ( I56575 , b/535298128 )
  • DeepLinkRequest.uri তে খালি কোয়েরি ভ্যালুর জন্য সাপোর্ট যোগ করা হয়েছে। যদি আর্গুমেন্টটি String টাইপের হয়, তাহলে খালি ভ্যালুটিকে একটি আক্ষরিক খালি স্ট্রিং হিসেবে গণ্য করা হবে। অন্যথায়, খালি ভ্যালুটিকে কোনো ভ্যালু প্রদান করা হয়নি বলে গণ্য করা হবে এবং ম্যাচিং ডিফল্ট ভ্যালুতে ফিরে যাওয়ার চেষ্টা করবে। যদি কোনো ডিফল্ট ভ্যালু না থাকে, তাহলে ম্যাচিং ব্যর্থ হবে। ( I30343 , b/535127459 )
  • EntryProvider এখন কী টাইপের চেয়ে কী ইনস্ট্যান্সের উপর ভিত্তি করে ম্যাচিংকে অগ্রাধিকার দেয়। ( Ib5ec9 , b/533331924 )
  • SceneState এখন সর্ববৃহৎ নন-ওভারলে সিন থেকে পূর্ববর্তী সিনগুলো সঠিকভাবে গণনা করে। ( I91915 , b/513630541 )

সংস্করণ ১.২.০-আলফা০৬

১৫ জুলাই, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha06-এ এই কমিটগুলো রয়েছে।

বাগ সংশোধন

  • UriDeepLinkMatcher ইউআরআই ফ্র্যাগমেন্ট সংক্রান্ত ডকুমেন্টেশন সংশোধন করা হয়েছে, যাতে এটি স্পষ্ট হয় যে ওয়াইল্ডকার্ডযুক্ত ফ্র্যাগমেন্ট যেকোনো ইনপুটের সাথে মিলবে, কিন্তু ইনপুটটি আর্গুমেন্ট হিসেবে নিষ্কাশিত হবে না। ( I5ad9b , b/524677091 )
  • UriDeepLinkMatcher একটি রিকোয়েস্টের সাথে ম্যাচ করতে ব্যর্থ হওয়ার সমস্যাটি সমাধান করা হয়েছে, যদি ইউআরআই প্যাটার্নে কোনো স্কিম না থাকে বা এটি ডাবল স্ল্যাশ দিয়ে শুরু না হয়। উদাহরণস্বরূপ, www.example.com/home এখন http://www.example.com/home এর সাথে ম্যাচ করবে। ( Ia6b65 , b/522791926 )

সংস্করণ ১.২.০-আলফা০৫

০১ জুলাই, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha05-এ এই কমিটগুলো রয়েছে।

নতুন এপিআই

  • একটি rememberResultEventBus এপিআই যোগ করা হয়েছে যা এমন একটি ResultEventBus রিটার্ন করে, যা rememberResultEventBusNavEntryDecorator এ পাস করা যায়। এর ফলে ResultEventBusNavEntryDecorator এর বাইরে একটি ResultEventBus হোইস্ট করা যায়। ( Ia655b , b/516995400 )

ডিপলিঙ্ক অনুরোধ

  • দুটি KMP-উপযোগী কনস্ট্রাক্টর যোগ করা হয়েছে - একটি DeepLinkUri গ্রহণ করে এবং অন্যটি একটি র স্ট্রিং ইউআরআই গ্রহণ করে। ( I3c088 , b/513200887 , b/522194187 )
  • (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) একটি কনস্ট্রাক্টর যোগ করা হয়েছে যা একটি Intent গ্রহণ করে। ( Ia0498 , b/513200887 , b/522194187 )
  • সমস্ত কনস্ট্রাক্টরের একটি অতিরিক্ত extras ফিল্ড আছে, যেখানে Map<String, Any> ব্যবহার করে অতিরিক্ত অনুরোধের তথ্য সংযুক্ত করা যায়। ( If81d5 , b/513200887 )
  • এক্সট্রাগুলির একটি ম্যাপ তৈরি করার জন্য একটি টাইপ-সেফ উপায় হিসেবে একটি নতুন requestExtras dsl যোগ করা হয়েছে। এই dsl-টি RequestExtrasKey এবং Any এর জোড়া সংরক্ষণ করার জন্য একটি put ফাংশন প্রদান করে। Map<String, Any>.get(key) এক্সটেনশন ফাংশনটি একটি RequestExtrasKey ব্যবহার করে ম্যাপ থেকে ডেটা পড়ার জন্য ব্যবহার করা যেতে পারে ( I5091c , b/513200887 )।
  • (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) ActionExtrasKey ব্যবহার করে একটি এক্সট্রাস ম্যাপ তৈরি করার জন্য ActionExtrasKey এবং actionExtra ফাংশন যোগ করা হয়েছে। ( Id0c90 , [b/513200887])
  • MimeTypeExtrasKey ব্যবহার করে একটি এক্সট্রাস ম্যাপ তৈরি করার জন্য MimeTypeExtrasKey এবং mimeTypeExtra ফাংশন যোগ করা হয়েছে। ( I85131 , b/513200887 )

ডিপলিঙ্কম্যাচার

  • DeepLinkMatcher.mimeTypeFilter এবং DeepLinkMatcher.actionFilter ফাংশন যোগ করা হয়েছে, যা DeepLinkMatcher.Filters তৈরি করে এবং mimeType বা action দ্বারা DeepLinkRequest ফিল্টার করে (শুধুমাত্র অ্যান্ড্রয়েডের জন্য)। উভয় ফিল্টারই স্ট্রিং সমতার ভিত্তিতে ম্যাচ করে এবং কেস-ইনসেনসিটিভ। ( Ie7e67 , b/513191950 )

এপিআই পরিবর্তন

ডিপলিঙ্ক অনুরোধ

  • fromAction ফ্যাক্টরি ফাংশনটি সরানো হয়েছে। কোনো অ্যাকশনের সাথে যুক্ত রিকোয়েস্ট তৈরি করতে, নতুন DeepLinkRequest.extras ফিল্ডটি ব্যবহার করুন। ( Id0c90 , b/513200887 )
  • fromMimeType ফ্যাক্টরি ফাংশনটি সরানো হয়েছে। কোনো mimeType-এর সাথে যুক্ত একটি অনুরোধ তৈরি করতে, নতুন DeepLinkRequest.extras ফিল্ডটি ব্যবহার করুন। ( I85131 , b/513200887 )
  • (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) fromIntent ফ্যাক্টরি ফাংশনটি সরানো হয়েছে। এর পরিবর্তে একটি নতুন কনস্ট্রাক্টর যোগ করা হয়েছে যা একটি Intent এবং extras ম্যাপ গ্রহণ করে। ( Ia0498 , b/513200887 , b/522194187 )
  • fromUri এবং fromUriString ফ্যাক্টরি ফাংশনগুলো সরানো হয়েছে। এগুলোর পরিবর্তে নতুন কনস্ট্রাক্টর আনা হয়েছে, যেগুলো হয় একটি DeepLinkUri অথবা একটি র স্ট্রিং ইউআরআই গ্রহণ করে। ( Id5b6f , b/522194187 )
  • DeepLinkMatcher , DeepLinkMatcher.MatchResult এবং তাদের সাবক্লাসগুলো এখন একটি কোভেরিয়েন্ট T (আউট T) গ্রহণ করে, যার ফলে Matchers-এর সাথে ব্যবহৃত হায়ারারকিক্যাল কীগুলোর জন্য টাইপ কাস্টিং-এর প্রয়োজন হবে না। ( I1e453 , b/525094876 )
  • UriMatchResult কনস্ট্রাক্টরের `map` আর্গুমেন্টের প্যারামিটারটি এখন ডিফল্টরূপে একটি খালি ম্যাপ হবে। ( I3acdd )
  • DeepLinkMatcher.Filter অ্যাবস্ট্রাক্ট ক্লাসটি এখন একটি ফাংশনাল ইন্টারফেস। filter কনস্ট্রাক্টর ফিল্ডটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে সাবক্লাসে এটি সরাসরি পাস করতে হবে। ( I9eb7d , b/522194187 )

বাগ সংশোধন

  • ল্যাম্বডা ভ্যালু সম্বলিত নেস্টেড মেটাডেটা আছে এমন কোনো এন্ট্রিতে পপ করার সময় পপ করা এন্ট্রিটি তাৎক্ষণিকভাবে অদৃশ্য হয়ে যাওয়ার সমস্যাটি সমাধান করা হয়েছে। ( Idb872 , b/520494430 )
  • UriDeepLinkMatcher সংশোধন করা হয়েছে যাতে ম্যাচিং করার সময় প্রয়োজনীয় আর্গুমেন্ট অনুপস্থিত থাকলে এটি MissingFieldException থ্রো করার পরিবর্তে একটি null UriMatchResult রিটার্ন করে। ( I5322f , b/524663005 )
  • যে UriDeeplinkMatcher https স্কিমের ইউআরআই থাকে, সেটিকে শুধুমাত্র সেইসব রিকোয়েস্টের সাথেই মেলানো যায় যেগুলোরও https স্কিম রয়েছে। ( Ibfe22 , b/522304329 )
  • একটি DeepLinkRequest একটি UriDeepLinkMatcher সাথে মেলানোর সময়, http স্কিমকে https এর সাথে একটি সঠিক মিল হিসেবে সঠিকভাবে শনাক্ত করার জন্য UriDeepLinkMatcher সংশোধন করা হয়েছে। ( I3a62b , b/518804264 )
  • DeepLinkMatcher.MatchResult কম্পারেটরটি এখন দুটি ফলাফল সমান হলে ডিফল্টরূপে 0 রিটার্ন করে। ( I48ddb , b/518841353 )
  • প্রয়োজনীয় আর্গুমেন্ট অনুপস্থিত থাকার কারণে ম্যাচ রিকোয়েস্ট ব্যর্থ হলে, UriDeepLinkMatcher এখন থেকে এক্সেপশন থ্রো করার পরিবর্তে একটি নাল UriMatchResult রিটার্ন করবে। ( I669a7 , b/470282247 , b/512923412 )

সংস্করণ 1.2.0-alpha04

০৩ জুন, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha04-এ এই কমিটগুলো রয়েছে।

বাগ সংশোধন

  • ওভারলে অ্যানিমেশনের একটি সমস্যা সমাধান করা হয়েছে, যেখানে ModalBottomSheet মতো নেস্টেড ওভারলেগুলো তার উপরের ওভারলেগুলো পপ করার সময় অপ্রত্যাশিতভাবে পুনরায় অ্যানিমেট হচ্ছিল। ( Ia2b9e , b/502624496 )

সংস্করণ 1.2.0-alpha03

১৯ মে, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha03-এ এই কমিটগুলো রয়েছে।

নতুন বৈশিষ্ট্য

নেভিগেশন ৩ এখন DeepLinkRequest এবং DeepLinkMatcher মাধ্যমে ডিপ লিঙ্ক সমর্থন করে।

  • DeepLinkRequest একটি অনুরোধকৃত ডিপ লিঙ্ক, যাতে একটি DeepLinkUri এবং একটি ঐচ্ছিক mimeType বা action (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) থাকে। এই নতুন ক্লাসের সাথে একটি uri , একটি mimeType , বা একটি action ব্যবহার করে ইনস্ট্যান্স তৈরি করার জন্য সহযোগী ফাংশনও রয়েছে। অ্যান্ড্রয়েড প্ল্যাটফর্মে একটি Intent থেকে অনুরোধ তৈরি করার জন্য একটি হেল্পারও আছে। ( Iaaac9 , b/470282247 )

    val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home")
    val uriAndMimeRequest = DeepLinkRequest.fromUriString(
      "https://sampledeeplink.com/user/profile?id=123",
      "image/png"
    )
    
  • DeepLinkMatcher একটি ডিপ লিঙ্ককে প্রতিনিধিত্ব করে যা একটি DeepLinkRequest সাথে মেলানো যায়। প্রতিটি ম্যাচার ইনস্ট্যান্স সেই নেভিগেশন কী-এর সাথে যুক্ত থাকে যা এই ডিপ লিঙ্কটিকে সমর্থন করে। একটি নেভিগেশন কী একাধিক ম্যাচারের সাথে যুক্ত থাকতে পারে। যদি ম্যাচ সফল হয়, তাহলে DeepLinkMatcher.match কল করলে একটি MatchResult রিটার্ন হবে, যাতে সংশ্লিষ্ট নেভিগেশন কী-টি থাকে। DeepLinkMatcher দুটি ডিফল্ট ইমপ্লিমেন্টেশন রয়েছে: Uri-এর উপর ভিত্তি করে ডিপ লিঙ্ক মেলানোর জন্য UriDeepLinkMatcher , এবং শুধুমাত্র DeepLinkMatcher.Filter ব্যবহার করে Boolean দ্বারা মেলানো ডিপ লিঙ্ক মেলানোর জন্য StaticKeyDeepLinkMatcher । ( I3798e , b/470282247 )

  • UriDeepLinkMatcher DeepLinkMatcher এর একটি বিশেষায়িত বাস্তবায়ন, যা DeepLinkUri একটি Serializable নেভিগেশন কী-এর সাথে মিলিয়ে ডিপ লিঙ্ক পরিচালনা করে। এটি প্রিমিটিভ টাইপ বা প্রিমিটিভের সংগ্রহ, যেমন লিস্ট, অ্যারে এবং সেটের ডিপ লিঙ্ক আর্গুমেন্ট সমর্থন করে। ( I1520b , b/470282247 )

    @Serializable
    data class UserKey(val id: Int): NavKey
    
    // declare a deep link supported by UserKey
    val userMatcher = UriDeepLinkMatcher(
      uriPattern = "www.sampledeeplink.com/user?userId={id}",
      serializer = serializer<UserKey>()
    )
    
    // handle a requested deep link with fallback key
    val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKey
    
  • DeepLinkUri যোগ করা হয়েছে যা android.net.Uri এর একটি কোটলিন-মাল্টিপ্ল্যাটফর্ম সংস্করণ ( Id4725 , b/470282247 )

এপিআই পরিবর্তন

  • Compose-এর compileSdk-এর সাথে মেলানোর জন্য compileSdk 37 এ উন্নীত করা হয়েছে।

বাগ সংশোধন

  • একাধিক ওভারলে প্রদর্শনের সময় AnimatedBottomSheetSample এর IllegalArgumentException সমস্যাটি সমাধান করা হয়েছে। নমুনা SceneStrategy এখন সর্বশেষ নন- OverlayScene সঠিকভাবে গণনা করবে এবং এটিকে সমস্ত ওভারলে সিনের নিচে প্রদর্শন করবে। ( If2281 , b/506733412 )
  • NavigationEvent ডিপেন্ডেন্সি 1.1.1-এ আপগ্রেড করা হয়েছে, যা ইন্সপেকশন মোডে থাকাকালীন no-op NavigationEventHandler-কে সরিয়ে দেয় এবং অ্যান্ড্রয়েড স্টুডিও প্রিভিউতে Predictive Back সক্ষম করে। ( I487fd )

সংস্করণ 1.2.0-alpha02

২২ এপ্রিল, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • বাতিল হওয়া ব্যাক জেসচার হ্যান্ডলিং সমর্থন করার জন্য onBack নাম পরিবর্তন করে onBackCompleted করুন এবং NavigationBackHandler-এ onBackCancelled যোগ করুন। ( I92741 )
  • SceneState ব্যবহার করার সময় ব্যাক জেসচার এবং প্রেডিক্টিভ ব্যাক হ্যান্ডলিং সহজ করতে NavigationBackHandler যোগ করুন। এটি ডেভেলপারদের ম্যানুয়ালি ব্যাক স্ট্যাক ডেল্টা গণনা না করেই স্ট্যান্ডার্ড ব্যাক নেভিগেশন এবং প্রেডিক্টিভ জেসচার সমর্থন করে এমন কাস্টম UI কম্পোনেন্ট আরও সহজে তৈরি করতে সাহায্য করে। ( I6a055 )
  • প্রেডিক্টিভ ব্যাক হ্যান্ডলিং-এর সাথে SceneState সংযোগ সহজ করতে rememberNavigationEventState যোগ করুন। ( Iae49c )

নতুন বৈশিষ্ট্য

  • নতুন ResultEventBusNavEntryDecorator দ্বারা প্রদত্ত LocalResultEventBus ব্যবহার করে NavEntries-এর মধ্যে ফলাফল আদান-প্রদানের জন্য একটি ResultEventBus API যোগ করা হয়েছে। প্রেরিত ফলাফল ResultEventBus#conflateAsState ব্যবহার করে একটি স্টেট হিসেবে অথবা ResultEffect ব্যবহার করে ফলাফলের একটি ফ্লো হিসেবে মূল্যায়ন করা যেতে পারে।

সংস্করণ 1.2.0-alpha01

০৮ এপ্রিল, ২০২৬

androidx.navigation3:navigation3-*:1.2.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha01-এ এই কমিটগুলো রয়েছে।

বাগ সংশোধন

  • OverlayScene থেকে LocalNavAnimatedContentScope অ্যাক্সেস করলে এখন আর IllegalStateException ঘটবে না, কারণ OverlayScenes এখন একটি no-op LocalAnimatedContentScope প্রদান করা হয়েছে। ( I2f00c , b/486067688 )

সংস্করণ ১.১.৭

২৬ আগস্ট, ২০২৬

androidx.navigation3:navigation3-*:1.1.7 প্রকাশিত হয়েছে। সংস্করণ 1.1.7-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • একটি সমস্যার সমাধান করা হয়েছে যেখানে সামনে যাওয়ার সময় সক্রিয় হওয়া প্রেডিক্টিভ ব্যাক জেসচার, সোয়াইপের অগ্রগতির প্রতিক্রিয়ায় অ্যানিমেট হতো না। এখন থেকে প্রেডিক্টিভ ব্যাক সঠিকভাবে অ্যানিমেট হবে এবং সম্পন্ন হবে। ( Icdcb0 , b/456218398 )

সংস্করণ ১.১.৬

১২ আগস্ট, ২০২৬

androidx.navigation3:navigation3-*:1.1.6 প্রকাশিত হয়েছে। সংস্করণ 1.1.6-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • NavEntry.contentKey এখন ডিফল্টরূপে key.toString() এবং key::class.toString() এর একটি সংমিশ্রণ হিসেবে ব্যবহৃত হয়। এটি নিশ্চিত করে যে, একই নামের কিন্তু ভিন্ন ইন্টারফেস ইমপ্লিমেন্ট করা ডেটা অবজেক্টগুলোর আর একই contentKey থাকবে না। তবে, JS প্ল্যাটফর্মের key::class সম্পূর্ণ নামের পরিবর্তে শুধুমাত্র সাধারণ ক্লাসের নাম রিটার্ন করে, তাই একই নামের ডেটা অবজেক্টগুলোর জন্য JS প্ল্যাটফর্মের এখনও কাস্টম contentKey ইমপ্লিমেন্ট করা উচিত। ( I1fbbb , b/512534342 )
  • ব্যাক স্ট্যাক থেকে দ্রুত পপ করার কারণে একই সাথে একাধিক পপ ট্রানজিশন চলমান থাকলে, কী-পুনরায় ব্যবহারের জন্য SaveableStateHolder দ্বারা নিক্ষিপ্ত IllegalArgumentException সংশোধন করা হয়েছে। ( I4d728 , b/516312097 )

সংস্করণ ১.১.৫

২৯ জুলাই, ২০২৬

androidx.navigation3:navigation3-*:1.1.5 প্রকাশিত হয়েছে। সংস্করণ 1.1.5-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • entryProvider DSL এখন একটি কী ইনস্ট্যান্স দিয়ে তৈরি NavEntry (যেমন entry(key = userKey) { ... } একটি কী ক্লাস দিয়ে তৈরি NavEntry (যেমন entry<UserKey>{ ... } চেয়ে অগ্রাধিকার দেয়। ( Ib5ec9 , b/533331924 )

সংস্করণ ১.১.৪

০১ জুলাই, ২০২৬

androidx.navigation3:navigation3-*:1.1.4 প্রকাশিত হয়েছে। সংস্করণ 1.1.4-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • ল্যাম্বডা ভ্যালু সম্বলিত নেস্টেড মেটাডেটা আছে এমন কোনো এন্ট্রিতে পপ করার সময় পপ করা এন্ট্রিটি তাৎক্ষণিকভাবে অদৃশ্য হয়ে যাওয়ার সমস্যাটি সমাধান করা হয়েছে। ( Idb872 , b/520494430 )

সংস্করণ ১.১.৩

১৭ জুন, ২০২৬

androidx.navigation3:navigation3-*:1.1.3 প্রকাশিত হয়েছে। সংস্করণ 1.1.3-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • ওভারলে অ্যানিমেশনের একটি সমস্যা সমাধান করা হয়েছে, যেখানে ModalBottomSheet মতো নেস্টেড ওভারলেগুলো তার উপরের ওভারলেগুলো পপ করার সময় অপ্রত্যাশিতভাবে পুনরায় অ্যানিমেট হচ্ছিল। ( Ia2b9e , b/502624496 )

  • NavigationEvent ডিপেন্ডেন্সি 1.1.2-এ আপগ্রেড করা হয়েছে, যা ইন্সপেকশন মোডে থাকাকালীন no-op NavigationEventHandler কে সরিয়ে দিয়ে Android Studio প্রিভিউগুলিতে Predictive Back সক্ষম করেছে।

সংস্করণ ১.১.২

১৯ মে, ২০২৬

androidx.navigation3:navigation3-*:1.1.2 প্রকাশিত হয়েছে। সংস্করণ 1.1.2-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • NavigationEvent ডিপেন্ডেন্সি 1.1.1-এ আপগ্রেড করা হয়েছে, যা ইন্সপেকশন মোডে থাকাকালীন no-op NavigationEventHandler সরিয়ে দিয়ে Android Studio প্রিভিউগুলিতে Predictive Back সক্ষম করেছে।

সংস্করণ ১.১.১

২২ এপ্রিল, ২০২৬

androidx.navigation3:navigation3-*:1.1.1 প্রকাশিত হয়েছে। সংস্করণ 1.1.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • OverlayScene থেকে LocalNavAnimatedContentScope অ্যাক্সেস করলে এখন আর IllegalStateException ঘটবে না, কারণ OverlayScenes এখন একটি no-op LocalAnimatedContentScope প্রদান করা হয়েছে। ( I2f00c , b/486067688 )

সংস্করণ ১.১.০

০৮ এপ্রিল, ২০২৬

androidx.navigation3:navigation3-*:1.1.0 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

১.১.০ এখন স্থিতিশীল!

১.০.০ সংস্করণ থেকে গুরুত্বপূর্ণ পরিবর্তনসমূহ

সিনগুলির মধ্যে শেয়ার্ড এলিমেন্ট - Navigation3 এখন সিনগুলিকে শেয়ার্ড এলিমেন্ট অবজেক্ট হিসাবে বিবেচনা করা সমর্থন করে। এর মানে হল, যখন সিনগুলি পরিবর্তিত হয়, তখন তাদের একটি মসৃণ রূপান্তর নিশ্চিত করা সম্ভব। আপনি NavDisplay অথবা rememberSceneState এ একটি SharedTransitionScope পাস করে এটি সক্রিয় করতে পারেন।

SceneDecoratorStrategy - সাধারণ UI কম্পোনেন্ট দিয়ে সিন সাজানো বা বিভিন্ন সিনের মধ্যে স্টেট শেয়ার করার মতো ব্যবহারের ক্ষেত্রগুলোকে সমর্থন করার জন্য SceneDecoratorStrategy এর প্রবর্তন।

NavMetadata DSL - Navigation3 এখন একটি নতুন টাইপ-সেফ মেটাডেটা ডিএসএল প্রদান করে। এই ডিএসএল-টি একটি নতুন MetadataKey ইন্টারফেস ব্যবহার করে, যা মেটাডেটা ম্যাপে সরবরাহ করতে ইচ্ছুক কী (key) এবং ভ্যালু (value) টাইপগুলো সংজ্ঞায়িত করার সুযোগ দেয়। এছাড়াও, এটি NavDisplay ট্রানজিশনের জন্য নতুন NavMetadataKeys যোগ করেছে, যাতে নতুন মেটাডেটা ডিএসএল-এর সাথে এগুলো ব্যবহার করে NavDisplay তে ট্রানজিশন যুক্ত করা যায়।

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

অন্যান্য পরিবর্তনসমূহ - NavDisplay এবং rememberSceneState এখন আগের then ইনফিক্স দ্বারা চেইন করা একক SceneStrategy প্যারামিটারের পরিবর্তে List<SceneStrategy> গ্রহণ করে। - আপনি এখন EntryProvider DSL-এর মাধ্যমে এন্ট্রি কী বিবেচনা করে ডায়নামিকভাবে মেটাডেটা যোগ করতে পারবেন।

সংস্করণ 1.1.0-rc01

২৫ মার্চ, ২০২৬

androidx.navigation3:navigation3-*:1.1.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • NavDisplay এখন নিশ্চিত করে যে ওভারলে-র নিচে প্রদর্শিত এন্ট্রিগুলির Lifecycle STARTED এ সীমাবদ্ধ থাকে। এটি নিশ্চিত করে যে ডায়ালগ ব্যবহার করার সময়ও dropUnlessResumed মতো API-গুলি কাজ করতে থাকে। ( If209f , b/483966071 )
  • NavDisplay তে একটি সমস্যা সমাধান করা হয়েছে, যেখানে একই স্ক্রিনগুলোর মধ্যে বারবার আসা-যাওয়া করলে এবং উভয়ের মধ্যকার অ্যানিমেশন বাধাগ্রস্ত হলে স্ক্রিনগুলোর z-order ভুল হয়ে যেতে পারতো। ( I4d491 , b/459419800 )

সংস্করণ 1.1.0-beta01

১১ মার্চ, ২০২৬

androidx.navigation3:navigation3-*:1.1.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-beta01-এ এই কমিটগুলো রয়েছে।

সংস্করণ 1.1.0-alpha05

২৫শে ফেব্রুয়ারি, ২০২৬

androidx.navigation3:navigation3-*:1.1.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha05-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • NavDisplay এবং rememberSceneState এখন আগের একক SceneStrategy প্যারামিটারের পরিবর্তে একটি List<SceneStrategy> গ্রহণ করে, যা then ইনফিক্স দ্বারা শৃঙ্খলিত ছিল। এটি List<SceneDecoratorStrategy<T>> এর সাথে আরও ঘনিষ্ঠভাবে সামঞ্জস্যপূর্ণ, যা এই উভয় API ইতিমধ্যেই গ্রহণ করে। পূর্ববর্তী API-গুলো অপ্রচলিত (deprecated) ঘোষণা করা হয়েছে। ( I78b2c , b/482108465 )
  • মেটাডেটা ম্যাপটিতে প্রদত্ত NavMetadataKey আছে কিনা তা পরীক্ষা করার জন্য একটি মেটাডেটা #contains অপারেটর যোগ করা হয়েছে। ( Ic30db , b/485311895 )
  • Metadata DSL-এর সাথে ব্যবহারের জন্য DialogSceneStrategy তে NavMetadataKey DialogKey যোগ করা হয়েছে। ( Ic7a26 , b/483388817 )

সংস্করণ 1.1.0-alpha04

১১ ফেব্রুয়ারী, ২০২৬

androidx.navigation3:navigation3-*:1.1.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha04-এ এই কমিটগুলো রয়েছে।

নতুন বৈশিষ্ট্য

  • Navigation3 এখন একটি নতুন টাইপ-সেফ মেটাডেটা ডিএসএল (DSL) প্রদান করে। এই ডিএসএল-টি একটি নতুন MetadataKey ইন্টারফেস ব্যবহার করে, যা মেটাডেটা ম্যাপে সরবরাহ করতে ইচ্ছুক কী (key) এবং ভ্যালু (value) টাইপগুলো সংজ্ঞায়িত করার সুযোগ দেয়। এছাড়াও, NavDisplay ট্রানজিশনের জন্য নতুন NavMetadataKey যোগ করা হয়েছে, যাতে নতুন metadata ডিএসএল-এর সাথে এগুলো ব্যবহার করে NavDisplay তে ট্রানজিশন যোগ করা যায়। ( Ic10ef , Ic049c , b/476213928 )

এপিআই পরিবর্তন

  • OverlayScene ইন্টারফেসে একটি নতুন onRemoved সাসপেন্ডিং কলব্যাক রয়েছে। এই কলব্যাকটি সিন-এর সাথে যুক্ত কোনো কী ব্যাকস্ট্যাক থেকে সরিয়ে ফেলার পরে, কিন্তু কম্পোজিশন থেকে বেরিয়ে যাওয়ার আগে কল করা হয়। এর ফলে, ওভারলে সিনটি কম্পোজিশন থেকে সরিয়ে ফেলার আগেই onRemoved মধ্যে কল করা এক্সিট অ্যানিমেশনগুলো সম্পূর্ণ হতে পারে। ( I29a72 , b/440558061 )
  • SceneStrategy ডেকোরেশন ফাংশনটিকে একটি নতুন SceneDecoratorStrategy তে আলাদা করেছে। সিন ডেকোরেট করার জন্য এই নতুন ইন্টারফেসটি ব্যবহার করা উচিত। SceneDecoratorStrategies যোগ করার সুবিধার্থে NavDisplay এবং rememberSceneState এর জন্য নতুন API রয়েছে। ( If9385 , b/477669607 , b/477670333 )

বাগ সংশোধন

  • একটি ত্রুটি সংশোধন করা হয়েছে যেখানে NavDisplay বা rememberSceneState এ একটি SharedTransitionLayout পাস করলে এবং যেকোনো OverlayScene ব্যবহার করলে ক্র্যাশ হতো, কারণ SharedTransitionLayout শুধুমাত্র NavEntries সাথে কাজ করে যেগুলো AnimatedContent এর অংশ হিসেবে রেন্ডার করা হয় এবং OverlayScene আলাদাভাবে তাদের নিজস্ব উইন্ডোতে রেন্ডার করা হয়। ( I1bb76 , b/478664101 )

নির্ভরতা আপডেট

  • Navigation3 1.0.1 থেকে: Navigation3 এখন NavigationEvent 1.0.2-এর উপর নির্ভরশীল। এটি AndroidStudio প্রিভিউ চলাকালীন NavDisplay ব্যবহারের কারণে সৃষ্ট একটি IllegalStateException সমাধান করে। ( Id7212 , b/477149762 )

সংস্করণ 1.1.0-alpha03

২৮ জানুয়ারী, ২০২৬

androidx.navigation3:navigation3-*:1.1.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha03-এ এই কমিটগুলো রয়েছে।

নতুন বৈশিষ্ট্য

  • এখন আপনি EntryProvider DSL-এর মাধ্যমে এন্ট্রি কী বিবেচনা করে ডায়নামিকভাবে মেটাডেটা যোগ করতে পারবেন। ( I942fb , ​​b/474416976 )

সংস্করণ 1.1.0-alpha02

১৪ জানুয়ারী, ২০২৬

androidx.navigation3:navigation3-*:1.1.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha02-এ এই কমিটগুলো রয়েছে।

নতুন বৈশিষ্ট্য

  • SceneStrategy এখন একটি নতুন calculatedScene(Scene) ফাংশনের মাধ্যমে সিন নেস্টিং সমর্থন করে। এর মানে হলো, অন্যান্য সিনে অতিরিক্ত কার্যকারিতা প্রদানের জন্য SceneStrategy কে কাস্টমাইজ করা যেতে পারে। ( I5df7c , b/440333896 )

সংস্করণ 1.1.0-alpha01

০৩ ডিসেম্বর, ২০২৫

androidx.navigation3:navigation3-*:1.1.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha01-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • Navigation3 এখন সিনগুলোকে শেয়ার্ড এলিমেন্ট অবজেক্ট হিসেবে বিবেচনা করা সমর্থন করে। এর মানে হলো, যখন সিনগুলো পরিবর্তিত হয়, তখন সেগুলোর একটি মসৃণ রূপান্তর নিশ্চিত করা সম্ভব। আপনি NavDisplay অথবা rememberSceneState এ একটি SharedTransitionScope পাস করার মাধ্যমে এটি সক্রিয় করতে পারেন। ( I15868 )

সংস্করণ ১.০

সংস্করণ ১.০.১

১১ ফেব্রুয়ারী, ২০২৬

androidx.navigation3:navigation3-*:1.0.1 প্রকাশিত হয়েছে। সংস্করণ 1.0.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

নির্ভরতা আপডেট

  • Navigation3 এখন NavigationEvent 1.0.2-এর উপর নির্ভরশীল। এটি AndroidStudio প্রিভিউ চলাকালীন NavDisplay ব্যবহারের কারণে সৃষ্ট একটি IllegalStateException সমাধান করে। ( Id7212 , b/477149762 )

সংস্করণ ১.০.০

১৯ নভেম্বর, ২০২৫

androidx.navigation3:navigation3-*:1.0.0 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

ন্যাভিগেশন৩ উপস্থাপন করা হচ্ছে!

সংস্করণ 1.0.0-rc01

০৫ নভেম্বর, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • NavDisplay এখন Scene লেভেলে একটি LocalLifecycleOwner সেট করে, যা সিন লেখকদের Lifecycle.State এর মান RESUMED কিনা তা পরীক্ষা করে সমস্ত ট্রানজিশন শেষ হয়েছে কিনা তা নির্ধারণ করতে সাহায্য করে। NavEntry লেভেলে LocalLifecycleOwner এর আচরণ অপরিবর্তিত রয়েছে: যদি কোনো ট্রানজিশন চলমান থাকে তবে এটিও STARTED এ সীমাবদ্ধ থাকে এবং যদি সেই NavEntry ব্যাক স্ট্যাক থেকে পপ করা হয়ে থাকে ও অ্যানিমেট হয়ে বেরিয়ে যাওয়ার প্রক্রিয়ায় থাকে, তবে এটি অতিরিক্তভাবে CREATED এ সীমাবদ্ধ থাকে। ( I03113 , b/454045829 )

সংস্করণ 1.0.0-beta01

২২ অক্টোবর, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

এপিআই পরিবর্তন

  • SceneStrategyScope এখন শুধুমাত্র একটি আর্গুমেন্টবিহীন পাবলিক কনস্ট্রাক্টর রয়েছে, যা আপনার SceneStrategy এবং ফেরত আসা Scene আলাদাভাবে পরীক্ষা করার জন্য উপযুক্ত। আরও জটিল ব্যবহারের ক্ষেত্রে, অনুগ্রহ করে rememberSceneState() ব্যবহার করুন। ( I8440c , b/451679047 )

বাগ সংশোধন

  • SceneStrategy সাথে then চেইন করার সময় অসীম লুপের সমস্যা সমাধান করা হয়েছে। ( Iba3f0 , b/450323470 )
  • NavDisplay তে পাঠানো backStack অদলবদল করার সময় এবং অ্যানিমেশন ব্যবহার করার সময় স্ক্রিনের ঝিকিমিকি সমস্যা সমাধান করা হয়েছে। ( Ief7b5 , b/450967248 )

সংস্করণ 1.0.0-alpha11

০৮ অক্টোবর, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-alpha11 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha11-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

এপিআই পরিবর্তন

  • SceneStrategy এর calculateScene মেথডটি আর @Composable নয়। এর পরিবর্তে, এই কাজটি আপনার SceneStrategy মেথডের গঠনে (যেমন, একটি rememberMySceneStrategy() মেথডে) সরিয়ে নেওয়ার কথা বিবেচনা করুন, যা আপনাকে যেকোনো rememberSaveable ভ্যালুর লাইফটাইম অথবা সঠিক ভ্যালুর উপর ভিত্তি করে কী remember স্টেটমেন্ট সম্পূর্ণরূপে সংজ্ঞায়িত করার সুযোগ দেবে। ( If1733 , b/448709506 )
  • SceneStrategy.calculateScene এর onBack প্যারামিটারটি SceneStrategyScope এর নতুন রিসিভার স্কোপে স্থানান্তর করা হয়েছে, যাতে এটি যে একটি ঐচ্ছিক প্যারামিটার তা আরও স্পষ্ট হয় এবং ভবিষ্যতের Navigation3 ফিচারগুলোর জন্য একটি এক্সটেনশন পয়েন্ট তৈরি হয়। ( I3aea3 , b/448460407 )
  • NavDisplay এবং আপনার SceneStrategy তে পাস করা onBack ল্যাম্বডাটি এখন আর একাধিক এন্ট্রি কখন পপ করা উচিত তা নির্দেশ করার জন্য count: Int প্যারামিটার সরবরাহ করে না। এর পরিবর্তে, সেই বিরল ক্ষেত্রে যখন আপনার Scene একাধিক এন্ট্রি পপ করার অনুরোধ করে, তখন () -> Unit ল্যাম্বডাটি এখন পরপর একাধিকবার কল করা হবে। ( Idedb5 , b/446989346 )
  • NavEntryWrapper ক্লাসটি সরিয়ে দিন এবং এর কার্যকারিতা একটি ফাইনাল NavEntry ক্লাস দিয়ে প্রতিস্থাপন করুন, যেটিতে একটি নতুন সেকেন্ডারি কনস্ট্রাক্টর থাকবে যা নতুন কন্টেন্টসহ একটি NavEntry গ্রহণ করবে। এর ফলে নতুন কন্টেন্ট দিয়ে একটি এন্ট্রি র‍্যাপ করার সুবিধা অব্যাহত থাকবে। ( I7da2a , b/444447130 )
  • navEntryDecorator ফাংশনটি, যা একটি NavEntryDecorator তৈরি করে এবং রিটার্ন করে, তা সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে NavEntryDecorator ক্লাসটি আনা হয়েছে, যা এখন পাবলিক এবং সাবক্লাসিংয়ের জন্য উন্মুক্ত। ( If81f8 , b/444447434 , b/447381176 )
  • SavedStateNavEntryDecorator নাম পরিবর্তন করে SaveableStateHolderNavEntryDecorator রাখা হয়েছে, কারণ এটি SaveableStateHolder যুক্ত এন্ট্রিগুলোকে ডেকোরেট করে। ডেকোরেটরটিকে একটি ফাংশন থেকে ক্লাসে রিফ্যাক্টরও করা হয়েছে, কারণ এটি কার্যগতভাবে NavEntryDecorator এর একটি ফ্যাক্টরি। ( Ie6013 , b/447381176 )
  • NavDisplay বিকল্প হিসেবে SceneState ব্যবহারকারী কাস্টম ডিসপ্লেগুলির জন্য এখন আর LocalEntriesToRenderInCurrentScene কম্পোজিশন লোকাল ব্যবহার করার প্রয়োজন নেই, যা এখন ইন্টারনাল। ( Ic40ef , b/414668196 )
  • পাবলিক এপিআই থেকে SceneSetupNavEntryDecorator এবং rememberSceneSetupNavEntryDecorator() সরিয়ে ফেলা হয়েছে। এই কার্যকারিতাটি এখন ডিফল্টভাবে অন্তর্ভুক্ত করা হয়েছে, এর জন্য আপনাকে ম্যানুয়ালি এটি যুক্ত করার প্রয়োজন নেই। ( Ieae42 , b/444479133 )
  • NavEntry , DialogScene , SinglePaneScene এবং SceneState এখন সবগুলোই equals প্রয়োগ করে। ( I96121 )
  • সিন ইন্টারফেসে নেভডিসপ্লে-এর জন্য সিন-নির্দিষ্ট মেটাডেটা সংযুক্ত করার একটি নতুন মেটাডেটা ফিল্ড রয়েছে। এটি একটি সিনকে NavDisplay -এর মেটাডেটা ওভাররাইড করার সুযোগ দেয়, উদাহরণস্বরূপ ট্রানজিশনের মাধ্যমে। ( I1fd96 , b/443955625 )
  • অপ্রয়োজনীয় জেনেরিক টাইপ প্যারামিটারটি সরিয়ে rememberNavBackStack সিগনেচার সরল করা হয়েছে। ফাংশনটি এখন vararg elements: NavKey । ( I03e45 )
  • NavDisplay এর ডিফল্ট অ্যানিমেশনগুলো এখন সাধারণ API-এর অংশ, যার ফলে এগুলোকে সকল প্ল্যাটফর্ম থেকে কল করা যায়। ( I71af9 , b/447147159 )
  • ক্লাসটি যে একটি কোটলিন ডিএসএল এবং এটি যে NavEntries ) তৈরির জন্য একটি স্কোপ প্রদান করে, তা সঠিকভাবে প্রতিফলিত করার জন্য EntryProviderBuilder নাম পরিবর্তন করে EntryProviderScope রাখুন। ( Ia7465 )

বাগ সংশোধন

  • rememberNavBackStack() এখন NavKey-এর জন্য পলিমরফিক সিরিয়ালাইজেশন বাধ্যতামূলক করে এবং সঠিক স্টেট পুনরুদ্ধার নিশ্চিত করার জন্য একটি কাস্টম SavedStateConfiguration প্রয়োজন। সমস্ত NavKey সাবটাইপকে প্রদত্ত SerializersModule-এ রেজিস্টার করার আবশ্যকতাটি প্রতিফলিত করার জন্য KDoc আপডেট করা হয়েছে। ( I6de37 , I782f2 , b/446664383 )

সংস্করণ 1.0.0-alpha10

২৪ সেপ্টেম্বর, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-alpha10 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha10-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

এপিআই পরিবর্তন

  • নতুন NavDisplay ওভারলোড যোগ করা হয়েছে যা rememberDecoratedNavEntries দ্বারা ডেকোরেট করা NavEntry<T> এর একটি তালিকা গ্রহণ করে। ( I4025b , b/441940314 )
  • DialogScene একটি নতুন প্যাকেজে স্থানান্তর করা হয়েছে। ( Ia5840 )
  • পাবলিক API DecorateNavEntry সরিয়ে ফেলুন। এর পরিবর্তে, একটি NavEntry-কে ডেকোরেটরের তালিকা দিয়ে র‍্যাপ করতে rememberDecoratedNavEntries ব্যবহার করুন। ( Id8c09 )
  • Navigation3 UI এখন নতুন ডিফল্ট transitionSpec প্রোপার্টি প্রদান করে। ( Ibcabd )
  • সিন ব্যবস্থাপনার জন্য একটি নতুন SceneState অবজেক্ট যোগ করা হয়েছে। এটি একটি নতুন NavDisplay ওভারলোডও প্রদান করে যা SceneState এবং NavigationEventState গ্রহণ করে। ( Idfb46 , b/444479133 )
  • NavDisplay now allows you to customize the transitions based on what Scene you are going to and from by looking at the Transition 's currentState and targetState . ( I906cc , b/443872322 )
  • NavigationEventInfo is now an abstract class instead of an interface . Update all custom implementations to inherit from the class (e..g, data class MyInfo : NavigationEventInfo() ). ( I1e59c , b/444734264 )
  • The navigationevent-compose handler APIs are updated. NavigationEventHandler and NavigationBackHandler (and variants) now support a new overload that accepts a hoisted NavigationEventState s. The simple overloads (taking currentInfo ) are preserved and now use this new state model internally. ( Ic3251 , b/444734264 )
  • All of the Scene APIs have been moved out of navigation3-ui to navigation3-runtime. This means they are now available on all platforms supported by navigation3-runtime. ( I431d0 , b/444449993 )
  • Added new rememberDecoratedNavEntries overload that takes a list of NavEntry to decorate. The input entries can be already decorated with other entry decorators. ( I5a034 , b/444230270 )
  • Remove navigation3 wildcard type parameters ( I02540 )
  • Improved the handling of generics for the entryProvider DSL. If you were previously importing androidx.navigation3.runtime.entry , this is no longer required. ( I299fc )
  • Restrict the reflection-based NavBackStackSerializer overload to Android. This prevents implicit runtime serialization failures on non-Android platforms by enforcing the use of the explicit SavedStateConfiguration overload in multiplatform code. ( I73313 , b/420443609 )
  • Make NavigationEvent 's swipeEdge an @IntDef ( Icee54 , b/443950342 )
  • Restrict NavBackStack serialization to Android. This prevents runtime failures on non-Android platforms. For multiplatform state saving, use the rememberNavBackStack overload with an explicit SavedStateConfiguration . ( I1e418 , b/420443609 )

Bug Fixes

  • Fix crash during predictive back when nested NavDisplay has a single child entry. ( I2cdc0 , b/441933162 )

Version 1.0.0-alpha09

September 10, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

API Changes

  • The DecoratedNavEntryProvider has been replaced with rememberDecoratedNavEntries that creates and return NavEntries decorated with the list of provided decorators ( I0fe1c , b/441328236 )
  • NavBackStack is now generic over the NavKey type. This allows apps and libraries to define custom key types for their back stacks, rather than being restricted to NavKey . ( I4d190 , Iad2f4 , b/420443609 )
  • NavBackStack is now @kotlinx.serialization.Serializable , making it possible to save and restore navigation state across process death and configuration changes without extra boilerplate. ( I2c3cf , b/420443609 )
  • RememberNavBackStack has been moved to commonMain to ensure it is provided on all platform targets. ( Id69e7 , b/420443609 )

Bug Fixes

  • NavDisplay now correctly moves each individual NavEntry to the correct Lifecycle.State . ( I30aac , b/440145700 )
  • Fixed an issue where NavDisplay would ignore any nested NavigationEventDispatcherOwner set via the NavigationEvent library's LocalNavigationEventDispatcherOwner . ( I6224a )

Dependency Changes

Version 1.0.0-alpha08

২৭ আগস্ট, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

New Features

  • Added new Kotlin MultiPlatform (KMP) targets to Navigation3 Runtime artifacts. Navigation3 Runtime now supports the following platforms in total: JVM (Android and Desktop), Native (Linux, iOS, watchOS, macOS, MinGW), and Web (JavaScript, WasmJS). ( I55078 , b/424410398 , b/419294028 , b/419046226 ). Note: This does not provide KMP targets for Navigation3 UI artifact. On other platforms, you will need to implement your own custom NavDisplay . If you would like to see it supported, please vote on the Jetbrains issue here and track the progress for additional support there.
  • The NavDisplayInfo object is now public and can be used to retrieve the list of visible entries from the NavDisplay . ( Ibc91f )

API Changes

  • Added a new NavBackStackSerializer to be used in conjunction with rememberNavBackStack to perform state restoration. rememberNavBackStack() now also takes a SavedStateConfiguration that can be used to provide your own configuration. ( I2f4d2 , I4cd58 , b/420443609 )

Bug Fixes

Known Issues

  • There was a bug introduced by I8bf6d that caused Lifecycles to be based on scenes instead of individual entries, which broke Lifecycle for any cases where the key provided to the NavEntry is not a String or your NavEntry has not overridden the contentKey and set it equal to the key (note that doing this enforces that your key can be saved into a Bundle ). This has been fixed for the next release. ( b/440145700 )

Version 1.0.0-alpha07

August 13, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

MinSdk Update

API Changes

  • SavedStateNavEntryDecorator now uses the SaveableStateRegistry built into SaveableStateProvider to save and restore states. ( If8d9a )
  • The predictivePopTransitionSpec is now provided the swipe edge as a parameter, allowing you to customize the transition based on what edge the user started the Predictive Back gesture from. ( I753a8 )

Bug Fixes

  • Fixed an issue that would cause custom scenes to be infinitely recalculated because the most recent scene was not being remembered. ( I7ba84 , b/418153031 )

Dependency update

Version 1.0.0-alpha06

July 30, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

Dependency Update

Version 1.0.0-alpha05

July 2, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits .

Behavior Changes

  • The NavEntry 's state is now strictly based on the current list of decorators passed to the NavDisplay . This means that decorators should be swapped along your back stacks in the case of multiple back stacks in order to preserve the state of the NavEntries on the back stack. Otherwise, the states will be cleared as if the entries were popped (instead of a swap). ( I7a759 , b/428033667 )

Version 1.0.0-alpha04

June 18, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .

API Changes

  • NavEntry.content is now private. To invoke NavEntry content, call the new NavEntry.Content() api which no longer requires a key parameter to invoke. ( Icd0fd , b/420991203 )
  • NavEntry.key is now a private field. The NavEntry and its relevant states should be identified by the new contentKey field which is generated from the new contentKeyFactory lambda and defaults to a saveable hash generated from NavEntry.key ( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 )

Dependency Changes

  • Navigation3 now depends on the new androidx.navigationevent.compose artifact.

Version 1.0.0-alpha03

June 4, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .

Bug Fixes

  • Navigation3 will no longer clear decorator states for backStacks that have been swapped out and replaced with another backStack instance. ( I28a42 , b/415076044 )

Version 1.0.0-alpha02

২৩ মে, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .

Bug Fixes

  • Fixed an issue with the SavedStateNavEntryDecorator which caused collisions for different data classes with the same property values. ( b/418070648 , Iff4775 )
  • Fixed a missing class issue that would cause crashes when running without declaring explicit dependencies. ( b/419049149 , I4b4ed )

Version 1.0.0-alpha01

২০ মে, ২০২৫

androidx.navigation3:navigation3-*:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits .

New Features

Navigation3 is a new navigation library built specifically to handle Jetpack Compose in-app navigation. The androidx.navigation3.runtime artifact provides the building blocks, while the androidx.navigation3.ui artifact provides the UI layer via the NavDisplay API. Developers can provide their own state directly to the NavDisplay composable function, which changes the content based on changes in the developer state.

@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey

val backStack = rememberNavBackStack(Home)

NavDisplay(backStack, entryProvider = entryProvider {
  entry<Home> {
    Column {
      Text(“Home”)
      Button(onClick = { backStack.add(Chat) } ) {
        Text(“Go to Chat”)
      } 
    }
  }
  entry<Chat> { /* My Composable Content */ }
})

For more information, see the Navigation3 guide .