Jetpack Navigation 3 ভার্সন 1.0 এখন স্টেবল 🎉। আজই আপনার প্রোডাকশন অ্যাপে এটি ব্যবহার করুন। JetBrains আগে থেকেই তাদের KotlinConf অ্যাপে এটি ব্যবহার করছে।
Navigation 3 হল একটি নতুন নেভিগেশন লাইব্রেরি যা Jetpack Compose স্টেট-এর সাথে কাজ করার জন্য তৈরি করা হয়েছে। এটি আপনাকে ব্যাক স্ট্যাকের উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়, নেভিগেশন স্টেট ধরে রাখতে সাহায্য করে এবং আপনাকে সহজেই অ্যাডাপ্টিভ লেআউট (যেমন তালিকা-বিবরণ) তৈরি করতে দেয়। এমনকি JetBrains-এর একটি ক্রস-প্ল্যাটফর্ম ভার্সনও আছে।
নতুন লাইব্রেরি কেন?
আসল Jetpack Navigation লাইব্রেরি (এখন Nav2) ৭ বছর আগে ডিজাইন করা হয়েছিল এবং এটি আসল লক্ষ্য ভালভাবে পূরণ করলেও এবং বারবার উন্নত করা হলেও, অ্যাপ এখন যেভাবে তৈরি করা হয় তা মৌলিকভাবে পরিবর্তিত হয়েছে।
ডিক্লারেটিভ UI সহ রিঅ্যাক্টিভ প্রোগ্রামিং এখন আদর্শ। Nav3 এই পদ্ধতি গ্রহণ করে। যেমন, NavDisplay (Nav3 UI কম্পোনেন্ট যা আপনার স্ক্রিন দেখায়) কম্পোজ স্টেট দ্বারা ব্যাক-আপ করা কী-এর তালিকা (প্রতিটি কী একটি স্ক্রিনকে দেখায়) শুধু পর্যবেক্ষণ করে এবং সেই তালিকা পরিবর্তন হলে তার UI আপডেট করে।
এছাড়াও, Nav2-এর নিজস্ব ইন্টার্নাল স্টেট থাকার কারণে আপনার নেভিগেশন স্টেটের জন্য সিঙ্গেল সোর্স অফ ট্রুথ পাওয়া কঠিন হতে পারে। Nav3-এর মাধ্যমে, আপনি নিজের স্টেট প্রদান করেন, যা আপনাকে সম্পূর্ণ নিয়ন্ত্রণ দেয়।
সবশেষে, আপনি আরও নমনীয়তা ও কাস্টমাইজ করার সুবিধা চেয়েছেন। Nav3-তে একটিমাত্র, মনোলিথিক API-এর পরিবর্তে ছোট, ডিকাপল করা API (বা "বিল্ডিং ব্লক") প্রদান করা হয়, যেগুলি একসাথে যুক্ত করে জটিল কার্যকারিতা তৈরি করা যায়। Nav3 নিজেই এই বিল্ডিং ব্লকগুলি ব্যবহার করে সুনির্দিষ্ট নেভিগেশন ব্যবহারের ক্ষেত্রে সংবেদনশীল ডিফল্ট প্রদান করে।
এই পদ্ধতি আপনাকে এগুলি করতে দেয়:
- গ্লোবাল ও ব্যক্তিগত, উভয় লেভেলে স্ক্রিন অ্যানিমেশন কাস্টমাইজ করুন
- একই সময়ে একাধিক প্যানেল দেখান এবং Scenes API ব্যবহার করে ফ্লেক্সিবল লেআউট তৈরি করুন
- আপনি যদি কাস্টম আচরণ চান, তাহলে সহজেই Nav3 কম্পোনেন্টগুলি আপনার নিজস্ব ইমপ্লিমেন্টেশন দিয়ে প্রতিস্থাপন করুন
লঞ্চ ব্লগ থেকে এর ডিজাইন ও ফিচার সম্পর্কে আরও জানুন।
Navigation 2 থেকে মাইগ্রেট করা
আপনি যদি আগে থেকেই Nav2, বিশেষ করে Navigation Compose ব্যবহার করেন, তাহলে Nav3-এ মাইগ্রেট করার কথা বিবেচনা করা উচিত। এই বিষয়ে আপনাকে সাহায্য করার জন্য একটি মাইগ্রেশন গাইড আছে। মূল ধাপগুলি হল:
- নেভিগেশন ৩ ডিপেন্ডেন্সি যোগ করুন।
- NavKey প্রয়োগ করতে আপনার নেভিগেশন রুট আপডেট করুন। Nav3 ব্যবহার করার জন্য আপনার রুটে এই ইন্টারফেস প্রয়োগ করতে হবে না, তবে যদি তা করেন, তাহলে আপনি Nav3-এর rememberNavBackStack ফাংশনের সুবিধা নিয়ে একটি পারসিস্টেন্ট ব্যাক স্ট্যাক তৈরি করতে পারবেন।
- আপনার নেভিগেশন স্টেট ধরে রাখতে এবং পরিবর্তন করতে ক্লাস তৈরি করুন - এখানেই আপনার ব্যাক স্ট্যাক রাখা হয়।
- NavController-এর পরিবর্তে এই ক্লাসগুলি ব্যবহার করুন।
- NavHost-এর NavGraph থেকে আপনার গন্তব্য entryProvider-এ সরান।
- NavHost-এর পরিবর্তে NavDisplay ব্যবহার করুন।
AI এজেন্ট মাইগ্রেশন নিয়ে এক্সপেরিমেন্ট করা
আপনি মাইগ্রেশন গাইড পড়তে এবং আপনার প্রোজেক্টে ধাপগুলি পারফর্ম করতে AI এজেন্ট ব্যবহার করে পরীক্ষা করতে চাইতে পারেন। Android Studio-র এজেন্ট মোডে Gemini-এর সাথে এটি ব্যবহার করে দেখতে:
- আপনার প্রোজেক্টে গাইডের এই মার্কডাউন ভার্সন সেভ করুন।
- এজেন্টে এই প্রম্পট পেস্ট করুন (তবে Enter প্রেস করবেন না): "ব্যবহার করে এই প্রোজেক্ট Navigation 3-এ মাইগ্রেট করুন"।
- @migration-guide.md টাইপ করুন - এটি এজেন্টকে প্রসঙ্গ হিসেবে গাইড প্রদান করবে।
সবসময়ের মতো, AI এজেন্টের করা পরিবর্তনগুলি ভালোভাবে পর্যালোচনা করতে ভুলবেন না - এটি ভুল করতে পারে!
আপনি বা আপনার এজেন্ট কেমন পারফর্ম করেছেন তা জানতে পারলে আমরা খুশি হব, এখানে আপনার মতামত পাঠান।
সাধারণ পরিস্থিতির জন্য Tasty নেভিগেশন রেসিপি
সাধারণ কিন্তু সূক্ষ্ম ব্যবহারের ক্ষেত্রে, আমাদের কাছে রেসিপি রিপোজিটরি আছে। এটি দেখায় যে কীভাবে Nav3 API-কে একটি নির্দিষ্ট উপায়ে একত্রিত করা যায়, যা আপনাকে আপনার নির্দিষ্ট প্রয়োজন অনুযায়ী রেসিপি বেছে নিতে বা পরিবর্তন করতে দেয়। কোনও রেসিপি জনপ্রিয় হয়ে উঠলে, আমরা সেটির সূক্ষ্ম নয় এমন অংশকে মূল Nav3 লাইব্রেরি বা অ্যাড-অন লাইব্রেরিতে "গ্র্যাজুয়েট" করার কথা বিবেচনা করব।
বর্তমানে ১৯টি রেসিপি আছে, যার মধ্যে রয়েছে:
- একাধিক ব্যাক স্ট্যাক
- মডিউলারাইজেশন এবং ডিপেন্ডেন্সি ইনজেকশন
- ViewModels-এ নেভিগেশন আর্গুমেন্ট পাস করা (Koin ব্যবহার করা সহ)
- ইভেন্ট ও শেয়ার করা স্ট্যাটাস অনুযায়ী স্ক্রিন থেকে ফলাফল দেখানো
আমরা বর্তমানে ডিপলিঙ্ক রেসিপি এবং Koin ইন্টিগ্রেশন নিয়ে কাজ করছি এবং আরও অনেক কিছু করার পরিকল্পনা আছে। এছাড়াও, JetBrains-এর একজন ইঞ্জিনিয়ার রেসিপির কম্পোজ মাল্টিপ্ল্যাটফর্ম ভার্সন প্রকাশ করেছেন।
আপনার যদি কোনও সাধারণ ব্যবহারের কেস থাকে যার জন্য আপনি রেসিপি দেখতে চান, তাহলে রেসিপির জন্য অনুরোধ ফাইল করুন।
সারসংক্ষেপ
Nav3 ব্যবহার শুরু করতে, ডকুমেন্ট এবং রেসিপি চেক করুন। এছাড়াও, পুরো সপ্তাহ জুড়ে টেকনিক্যাল কন্টেন্টের উপর নজর রাখুন, যার মধ্যে রয়েছে:
- মডুলারাইজেশন, অ্যানিমেশন এবং অ্যাডাপ্টিভ লেআউট কভার করে API-এর উপর একটি ডিপ ডাইভ ভিডিও।
- Nav3 তৈরি করেছেন এমন ইঞ্জিনিয়ারদের সাথে একটি লাইভ 'আমাকে যেকোনও প্রশ্ন করুন' (AMA) সেশন।
Nav3 স্পটলাইট সপ্তাহ ১ ডিসেম্বর, ২০২৫ থেকে শুরু হচ্ছে।
আগের মতোই, কোনও সমস্যা দেখতে পেলে, এখানে অভিযোগ জানান।
-
প্রোডাক্ট সংক্রান্ত খবরশুধু মোবাইল নয়, এবার অ্যাডাপটিভ: অ্যাডাপটিভ অ্যাপ তৈরি করার জন্য ২০২৫ সালের তিনটি গুরুত্বপূর্ণ আপডেট
২০২৫ সালে Android ইকোসিস্টেম ফোনের বাইরেও অনেক দূর পর্যন্ত বিস্তৃত হয়েছে। আজ, ডেভেলপারদের কাছে ফোল্ডেবল, ট্যাবলেট, XR, Chromebook এবং মানানসই গাড়ি সহ ৫০০ মিলিয়নেরও বেশি অ্যাক্টিভ ডিভাইসে পৌঁছানোর সুযোগ রয়েছে।
Fahd Imtiaz • পড়তে ২ মিনিট লাগবে -
প্রোডাক্ট সংক্রান্ত খবরএজেন্টিক ডেভেলপমেন্টের গতি বাড়ার সাথে সাথে, Android ইঞ্জিনিয়ারিং একটি নতুন দিগন্তে পৌঁছে যাচ্ছে: সহায়ক কোড সম্পূর্ণ করা থেকে শুরু করে আপনার নির্দেশনায় এন্ড-টু-এন্ড কাজ করা এজেন্ট পর্যন্ত। আপনি যে মডেল ও এজেন্ট ব্যবহার করেন, তার উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ ও নমনীয়তা থাকে।
Jason Buchel • ৩ মিনিট রিডিং -
প্রোডাক্ট সংক্রান্ত খবরআজ আমরা শেয়ার করেছি যে কীভাবে আমরা আমাদের "স্টোরের চেয়েও বেশি কিছু" ভিশনকে পরবর্তী অধ্যায়ে নিয়ে যাচ্ছি। 'অ্যাকাউন্ট' ট্যাব থেকে, এখন ২৫০ মিলিয়নেরও বেশি মাসিক অ্যাক্টিভ ব্যবহারকারীর জন্য ব্যক্তিগত হোম বেস, আমাদের ইউনিফায়েড গেমিং প্ল্যাটফর্ম ৭০০ মিলিয়নেরও বেশি গেমার প্রোফাইলকে কানেক্ট করছে, Google Play ব্যবহারকারীদের যেখানেই থাকুক না কেন তাদের সাথে কানেক্ট করছে।
Paul Feng • ৩ মিনিট রিডিং
আপনার ইনবক্সে প্রতি সপ্তাহে Android ডেভেলপমেন্ট সংক্রান্ত লেটেস্ট ইনসাইট পান।