নেভিগেশন৩

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

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

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

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

গ্রোভি

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.1.0-rc01"
    implementation "androidx.navigation3:navigation3-ui:1.1.0-rc01"
}

কোটলিন

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.1.0-rc01")
    implementation("androidx.navigation3:navigation3-ui:1.1.0-rc01")
}

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

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

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

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

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

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

সংস্করণ ১.১

সংস্করণ 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 এখন আপনাকে Transition এর currentState এবং targetState দেখে, আপনি কোন Scene যাচ্ছেন বা কোথা থেকে আসছেন তার উপর ভিত্তি করে ট্রানজিশনগুলো কাস্টমাইজ করার সুযোগ দেয়। ( I906cc , b/443872322 )
  • NavigationEventInfo এখন একটি interface পরিবর্তে একটি abstract class । সমস্ত কাস্টম ইমপ্লিমেন্টেশনকে এই ক্লাস থেকে ইনহেরিট করার জন্য আপডেট করুন (যেমন, data class MyInfo : NavigationEventInfo() )। ( I1e59c , b/444734264 )
  • navigationevent-compose হ্যান্ডলার API-গুলো আপডেট করা হয়েছে। NavigationEventHandler এবং NavigationBackHandler (এবং এর বিভিন্ন সংস্করণ) এখন একটি নতুন ওভারলোড সমর্থন করে যা একটি হোয়িস্টেড NavigationEventState গ্রহণ করে। সাধারণ ওভারলোডগুলো (যা currentInfo গ্রহণ করে) অপরিবর্তিত রাখা হয়েছে এবং এখন অভ্যন্তরীণভাবে এই নতুন স্টেট মডেলটি ব্যবহার করে। ( Ic3251 , b/444734264 )
  • সমস্ত Scene API-কে navigation3-ui থেকে navigation3-runtime-এ স্থানান্তর করা হয়েছে। এর মানে হল, এগুলি এখন navigation3-runtime দ্বারা সমর্থিত সমস্ত প্ল্যাটফর্মে উপলব্ধ। ( I431d0 , b/444449993 )
  • নতুন rememberDecoratedNavEntries ওভারলোড যোগ করা হয়েছে, যা ডেকোরেট করার জন্য NavEntry এর একটি তালিকা গ্রহণ করে। ইনপুট এন্ট্রিগুলো অন্যান্য এন্ট্রি ডেকোরেটর দিয়ে আগে থেকেই ডেকোরেট করা থাকতে পারে। ( I5a034 , b/444230270 )
  • navigation3 ওয়াইল্ডকার্ড টাইপ প্যারামিটারগুলি সরান ( I02540 )
  • entryProvider DSL-এর জন্য জেনেরিকস পরিচালনার উন্নতি করা হয়েছে। আপনি যদি আগে androidx.navigation3.runtime.entry ইম্পোর্ট করে থাকেন, তবে এখন আর তার প্রয়োজন নেই। ( I299fc )
  • রিফ্লেকশন-ভিত্তিক NavBackStackSerializer ওভারলোডটি শুধু অ্যান্ড্রয়েডের জন্য সীমাবদ্ধ করুন। এটি মাল্টিপ্ল্যাটফর্ম কোডে সুস্পষ্ট SavedStateConfiguration ওভারলোডের ব্যবহার বাধ্যতামূলক করার মাধ্যমে অ্যান্ড্রয়েড-বহির্ভূত প্ল্যাটফর্মগুলিতে অব্যক্ত রানটাইম সিরিয়ালাইজেশন ব্যর্থতা প্রতিরোধ করে। ( I73313 , b/420443609 )
  • NavigationEvent এর swipeEdge একটি @IntDef পরিণত করুন ( Icee54 , b/443950342 )
  • NavBackStack সিরিয়ালাইজেশন শুধু অ্যান্ড্রয়েডের জন্য সীমাবদ্ধ করুন। এটি অ্যান্ড্রয়েড-বহির্ভূত প্ল্যাটফর্মগুলিতে রানটাইম ব্যর্থতা প্রতিরোধ করে। একাধিক প্ল্যাটফর্মে স্টেট সংরক্ষণের জন্য, একটি সুস্পষ্ট SavedStateConfiguration সহ rememberNavBackStack ওভারলোডটি ব্যবহার করুন। ( I1e418 , b/420443609 )

বাগ সংশোধন

  • নেস্টেড NavDisplay একটিমাত্র চাইল্ড এন্ট্রি থাকলে প্রেডিক্টিভ ব্যাক চলাকালীন ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। ( I2cdc0 , b/441933162 )

সংস্করণ 1.0.0-alpha09

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

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

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

  • DecoratedNavEntryProvider rememberDecoratedNavEntries দ্বারা প্রতিস্থাপন করা হয়েছে, যা প্রদত্ত ডেকোরেটরগুলির তালিকা দিয়ে সজ্জিত NavEntries তৈরি করে এবং ফেরত দেয় ( I0fe1c , b/441328236 )।
  • NavBackStack এখন NavKey টাইপের উপর জেনেরিক। এর ফলে অ্যাপ এবং লাইব্রেরিগুলো NavKey মধ্যে সীমাবদ্ধ না থেকে তাদের ব্যাক স্ট্যাকের জন্য কাস্টম কী টাইপ সংজ্ঞায়িত করতে পারবে। ( I4d190 , Iad2f4 , b/420443609 )
  • NavBackStack এখন @kotlinx.serialization.Serializable , যার ফলে কোনো অতিরিক্ত বয়লারপ্লেট ছাড়াই প্রসেস বন্ধ হয়ে যাওয়া বা কনফিগারেশন পরিবর্তনের পরেও ন্যাভিগেশন স্টেট সংরক্ষণ ও পুনরুদ্ধার করা সম্ভব। ( I2c3cf , b/420443609 )
  • RememberNavBackStack commonMain এ স্থানান্তর করা হয়েছে, যাতে এটি সকল প্ল্যাটফর্ম টার্গেটে সরবরাহ করা নিশ্চিত করা যায়। ( Id69e7 , b/420443609 )

বাগ সংশোধন

  • NavDisplay এখন প্রতিটি NavEntry সঠিকভাবে তার যথাযথ Lifecycle.State এ স্থানান্তর করে। ( I30aac , b/440145700 )
  • NavigationEvent লাইব্রেরির LocalNavigationEventDispatcherOwner এর মাধ্যমে সেট করা যেকোনো নেস্টেড NavigationEventDispatcherOwner NavDisplay উপেক্ষা করত, সেই সমস্যাটি সমাধান করা হয়েছে। ( I6224a )

নির্ভরশীলতার পরিবর্তন

সংস্করণ 1.0.0-alpha08

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

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

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

  • Navigation3 Runtime আর্টিফ্যাক্টে নতুন Kotlin MultiPlatform (KMP) টার্গেট যোগ করা হয়েছে। Navigation3 Runtime এখন মোট নিম্নলিখিত প্ল্যাটফর্মগুলো সমর্থন করে: JVM (Android এবং Desktop), Native (Linux, iOS, watchOS, macOS, MinGW), এবং Web (JavaScript, WasmJS)। ( I55078 , b/424410398 , b/419294028 , b/419046226 )। দ্রষ্টব্য: এটি Navigation3 UI আর্টিফ্যাক্টের জন্য KMP টার্গেট প্রদান করে না। অন্যান্য প্ল্যাটফর্মে, আপনাকে আপনার নিজস্ব কাস্টম NavDisplay প্রয়োগ করতে হবে। আপনি যদি এটির সমর্থন দেখতে চান, তাহলে অনুগ্রহ করে এখানে Jetbrains ইস্যুটিতে ভোট দিন এবং সেখানে অতিরিক্ত সমর্থনের জন্য অগ্রগতি ট্র্যাক করুন।
  • NavDisplayInfo অবজেক্টটি এখন পাবলিক এবং এটি NavDisplay থেকে দৃশ্যমান এন্ট্রিগুলির তালিকা পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে। ( Ibc91f )

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

  • স্টেট পুনরুদ্ধার করার জন্য rememberNavBackStack সাথে একত্রে ব্যবহার করার জন্য একটি নতুন NavBackStackSerializer যোগ করা হয়েছে। rememberNavBackStack() এখন একটি SavedStateConfiguration ও গ্রহণ করে, যা আপনার নিজস্ব কনফিগারেশন দেওয়ার জন্য ব্যবহার করা যেতে পারে। ( I2f4d2 , I4cd58 , b/420443609 )

বাগ সংশোধন

  • একটি সমস্যার সমাধান করা হয়েছে যেখানে নেভিগেট করার ফলে ভুল লাইফসাইকেল ইভেন্ট চালু হয়ে যেত। ( I8bf6d , b/425901162 , b/434109022 )

পরিচিত সমস্যা

  • I8bf6d- এর তৈরি করা একটি বাগের কারণে লাইফসাইকেলগুলো স্বতন্ত্র এন্ট্রির পরিবর্তে সিন-এর উপর ভিত্তি করে তৈরি হতো। এর ফলে, NavEntry তে দেওয়া key যদি String না হতো অথবা আপনার NavEntry যদি contentKey ওভাররাইড করে key এর সমান না করত, তবে লাইফসাইকেলটি ভেঙে যেত (উল্লেখ্য যে, এটি করলে আপনার key একটি Bundle সেভ করা নিশ্চিত হয়)। পরবর্তী রিলিজে এটি ঠিক করা হয়েছে। ( b/440145700 )

সংস্করণ 1.0.0-alpha07

১৩ আগস্ট, ২০২৫

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

MinSdk আপডেট

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

  • SavedStateNavEntryDecorator এখন স্টেট সংরক্ষণ এবং পুনরুদ্ধার করার জন্য SaveableStateProvider অন্তর্নির্মিত SaveableStateRegistry ব্যবহার করে। ( If8d9a )
  • predictivePopTransitionSpec কে এখন সোয়াইপ এজ একটি প্যারামিটার হিসেবে প্রদান করা হয়েছে, যা আপনাকে ব্যবহারকারী কোন এজ থেকে প্রেডিক্টিভ ব্যাক জেসচারটি শুরু করেছেন তার উপর ভিত্তি করে ট্রানজিশনটি কাস্টমাইজ করার সুযোগ দেয়। ( I753a8 )

বাগ সংশোধন

  • এমন একটি সমস্যার সমাধান করা হয়েছে যার কারণে সর্বশেষ সিনটি মনে না থাকায় কাস্টম সিনগুলো অনির্দিষ্টকালের জন্য পুনঃগণনা হতে থাকতো। ( I7ba84 , b/418153031 )

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

সংস্করণ 1.0.0-alpha06

৩০ জুলাই, ২০২৫

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

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

সংস্করণ 1.0.0-alpha05

২ জুলাই, ২০২৫

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

আচরণগত পরিবর্তন

  • NavEntry এর অবস্থা এখন NavDisplay তে পাঠানো ডেকোরেটরগুলোর বর্তমান তালিকার উপর কঠোরভাবে নির্ভরশীল। এর মানে হলো, একাধিক ব্যাক স্ট্যাক থাকলে ব্যাক স্ট্যাকে থাকা NavEntries-গুলোর অবস্থা অক্ষুণ্ণ রাখার জন্য ডেকোরেটরগুলোকে ব্যাক স্ট্যাকগুলোর মধ্যে অদলবদল করতে হবে। অন্যথায়, এন্ট্রিগুলো অদলবদল না হয়ে পপ হয়ে গেলে যেমন অবস্থাগুলো মুছে যেত, ঠিক সেভাবেই অবস্থাগুলো মুছে যাবে। ( I7a759 , b/428033667 )

সংস্করণ 1.0.0-alpha04

১৮ জুন, ২০২৫

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

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

  • NavEntry.content এখন প্রাইভেট। NavEntry কন্টেন্ট চালু করতে, নতুন NavEntry.Content() এপিআই কল করুন, যা চালু করার জন্য এখন আর কোনো key প্যারামিটারের প্রয়োজন নেই। ( Icd0fd , b/420991203 )
  • NavEntry.key এখন একটি প্রাইভেট ফিল্ড। NavEntry এবং এর প্রাসঙ্গিক স্টেটগুলোকে নতুন contentKey ফিল্ড দ্বারা শনাক্ত করা উচিত, যা নতুন contentKeyFactory ল্যাম্বডা থেকে তৈরি হয় এবং ডিফল্টরূপে NavEntry.key থেকে তৈরি একটি সংরক্ষণযোগ্য হ্যাশ হিসেবে থাকে ( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 )

নির্ভরশীলতার পরিবর্তন

  • Navigation3 এখন নতুন androidx.navigationevent.compose আর্টিফ্যাক্টটির উপর নির্ভরশীল।

সংস্করণ 1.0.0-alpha03

৪ জুন, ২০২৫

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

বাগ সংশোধন

  • যেসব backStacks সোয়াপ আউট করে অন্য একটি backStack ইনস্ট্যান্স দিয়ে প্রতিস্থাপন করা হয়েছে, Navigation3 সেগুলোর ডেকোরেটর স্টেট আর ক্লিয়ার করবে না। ( I28a42 , b/415076044 )

সংস্করণ 1.0.0-alpha02

২৩ মে, ২০২৫

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

বাগ সংশোধন

  • SavedStateNavEntryDecorator এর একটি সমস্যা সমাধান করা হয়েছে, যার কারণে একই প্রপার্টি ভ্যালুযুক্ত বিভিন্ন ডেটা ক্লাসের মধ্যে সংঘর্ষ ঘটছিল। ( b/418070648 , Iff4775 )
  • সুস্পষ্ট ডিপেন্ডেন্সি ঘোষণা না করে চালানোর সময় ক্র্যাশ হওয়ার কারণ একটি অনুপস্থিত ক্লাসের সমস্যা সমাধান করা হয়েছে। ( b/419049149 , I4b4ed )

সংস্করণ 1.0.0-alpha01

২০ মে, ২০২৫

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

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

Navigation3 হলো একটি নতুন নেভিগেশন লাইব্রেরি যা বিশেষভাবে Jetpack Compose-এর ইন-অ্যাপ নেভিগেশন পরিচালনার জন্য তৈরি করা হয়েছে। androidx.navigation3.runtime আর্টিফ্যাক্টটি এর মূল উপাদানগুলো সরবরাহ করে, আর androidx.navigation3.ui আর্টিফ্যাক্টটি NavDisplay API-এর মাধ্যমে UI লেয়ার প্রদান করে। ডেভেলপাররা সরাসরি NavDisplay কম্পোজেবল ফাংশনে তাদের নিজস্ব স্টেট প্রদান করতে পারেন, যা ডেভেলপারের স্টেটের পরিবর্তনের উপর ভিত্তি করে কন্টেন্ট পরিবর্তন করে।

@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 */ }
})

আরও তথ্যের জন্য, নেভিগেশন৩ নির্দেশিকাটি দেখুন।