আমরা অত্যন্ত আনন্দের সাথে ঘোষণা করছি যে Jetpack WindowManager 1.5.0 এখন স্থিতিশীল!
এই রিলিজ WindowManager-এর অ্যাডাপ্টেবিলিটির শক্তিশালী ভিত্তির উপর ভিত্তি করে তৈরি করা হয়েছে, যা সব স্ক্রিন সাইজে দারুণ দেখায় এমন মসৃণ, অ্যাডাপ্টিভ UI তৈরি করা আরও সহজ করে তোলে। Android ইকোসিস্টেমের ক্রমাগত উন্নতির সাথে সাথে, ব্যবহারকারীরা আগের চেয়ে অনেক বেশি ধরনের ডিভাইসে অ্যাপের সাথে ইন্টার্যাক্ট করছেন: ফোন ও ফোল্ডেবল থেকে শুরু করে ট্যাবলেট, কানেক্ট করা ডিসপ্লে, Chromebook এবং এমনকি পার্ক করা মোডে থাকা গাড়ির ডিসপ্লে।
WindowManager 1.5 এই বিভিন্ন ধরনের ডিভাইস এনভায়রনমেন্টের জন্য আরও ভালো টুল প্রদান করার উপর ফোকাস করে।
WindowManager 1.5-এ নতুন কী আছে
এই স্থিতিশীল রিলিজটি খুব বড় স্ক্রিনের জন্য নতুন ব্রেকপয়েন্ট নিয়ে আসে, অ্যাক্টিভিটি এম্বেডিং API উন্নত করে এবং উইন্ডো মেট্রিক গণনা করার জন্য আরও বেশি নমনীয়তা প্রদান করে।
নতুন উইন্ডো সাইজ ক্লাস: বড় ও অতিরিক্ত বড়
1.5 ভার্সনের সবচেয়ে বড় আপডেট হল, এতে উইন্ডোর সাইজের দুটি নতুন ক্লাস যোগ করা হয়েছে: বড় ও অতিরিক্ত বড়।
উইন্ডো সাইজ ক্লাস হল ভিউপোর্ট ব্রেকপয়েন্টের আমাদের অফিসিয়াল, মতামত-ভিত্তিক সেট যা আপনাকে অ্যাডাপ্টিভ লেআউট ডিজাইন ও ডেভেলপ করতে সাহায্য করে। 1.5 ভার্সনে, আমরা সাধারণ ট্যাবলেটের চেয়ে বড় স্ক্রিনের জন্য এই নির্দেশিকা বাড়াচ্ছি।
নতুন উইডথ ব্রেকপয়েন্টগুলি এখানে দেওয়া হল:
- বড়: ১২০০dp থেকে ১৬০০dp-এর মধ্যে প্রস্থের জন্য
- অত্যন্ত বড়: প্রস্থ ≥১৬০০dp হলে
ডিসপ্লে উইডথের উপর ভিত্তি করে বিভিন্ন উইন্ডো সাইজ ক্লাস।
এগুলি কেন গুরুত্বপূর্ণ?
Android 16 QPR1 Beta 2 থেকে শুরু করে, Android কানেক্ট করা ডিসপ্লে কাজ করে, এর ফলে ব্যবহারকারীরা তাদের ডিভাইসে এক্সটার্নাল ডিসপ্লে অ্যাটাচ করতে এবং এটিকে বড় স্ক্রিন সহ ডেস্কটপ-সদৃশ টুলে পরিবর্তন করতে পারেন।
এক্সটার্নাল ডিসপ্লের সাথে কানেক্ট করা ফোন, এক্সটার্নাল ডিসপ্লেতে ডেস্কটপ সেশন চলছে।
এই নতুন ফিচার উপলভ্য হওয়ার ফলে, আরও বড় ডিসপ্লে অন্তর্ভুক্ত করার ব্যাপারে মতামতভিত্তিক নির্দেশিকা দেওয়া গুরুত্বপূর্ণ।
এইসব খুব বড় সারফেসে, কোনও ট্যাবলেটের এক্সপ্যান্ডেড লেআউটকে শুধু স্কেল-আপ করলেই সবসময় সেরা ব্যবহারকারীর অভিজ্ঞতা পাওয়া যায় না। যেমন, ইমেল ক্লায়েন্ট, Expanded উইন্ডো সাইজ ক্লাসে দুটি প্যান (মেলবক্স ও মেসেজ) স্বাচ্ছন্দ্যে দেখাতে পারে। কিন্তু অত্যন্ত বড় ডেস্কটপ মনিটরে, ইমেল ক্লায়েন্ট তিনটি বা এমনকি চারটি প্যান সুন্দরভাবে দেখাতে পারে—সম্ভবত একটি মেলবক্স, একটি মেসেজ তালিকা, সম্পূর্ণ মেসেজ কন্টেন্ট এবং একটি ক্যালেন্ডার/টাস্ক প্যানেল, সবই একসাথে।
খুব বড় ডিসপ্লে সাইজের জন্য অফিসিয়াল ব্রেকপয়েন্ট প্রদান করার মাধ্যমে, WindowManager 1.5 আপনাকে এমন লেআউট যোগ করার ব্যাপারে স্পষ্ট ইঙ্গিত দেয় যা বিশেষভাবে প্রোডাক্টিভ, তথ্য-ঘন ডেস্কটপ অভিজ্ঞতার জন্য ডিজাইন করা হয়েছে।
computeWindowSizeClass() ব্যবহার করে উইন্ডো সাইজ ক্লাস গণনা করা যেতে পারে, এটি androidx.window.core.layout লাইব্রেরি এক্সটেনশন ফাংশন যা Set<WindowSizeClass> টাইপকে এক্সটেন্ড করে।
আপনার প্রোজেক্টে নতুন উইন্ডো সাইজ ক্লাস যোগ করতে, WindowSizeClass.BREAKPOINTS_V1-এর পরিবর্তে WindowSizeClass.BREAKPOINTS_V2 সেট থেকে ফাংশনটি কল করুন:
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
তারপরে, আপনার অ্যাপে অন্তত সেই পরিমাণ জায়গা আছে বলে নিশ্চিত হলে সঠিক লেআউট প্রয়োগ করুন:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}অ্যাডাপ্টিভ লাইব্রেরি
Compose Material 3 অ্যাডাপ্টিভ লাইব্রেরি আপনাকে এমন অ্যাডাপ্টিভ UI তৈরি করতে সাহায্য করে যা উইন্ডো সাইজ ক্লাস বা ডিভাইস পোস্টারের মতো বর্তমান উইন্ডো কনফিগারেশন অনুযায়ী অটোমেটিক অ্যাডজাস্ট হয়ে যায়।
ভাল খবর হল, লাইব্রেরি আগেই নতুন ব্রেকপয়েন্ট অনুযায়ী আপডেট করা হয়েছে! ভার্সন 1.2 থেকে (এখন রিলিজ ক্যান্ডিডেট স্টেজে আছে), ডিফল্ট প্যানেল স্ক্যাফোল্ড ডাইরেক্টিভ ফাংশনগুলি বড় ও অতিরিক্ত বড় উইন্ডো উইডথ সাইজ ক্লাসকে সাপোর্ট করে।
নতুন ব্রেকপয়েন্ট ব্যবহার করতে চান, তা Gradle বিল্ড ফাইলে ঘোষণা করেই আপনাকে শুধু অপ্ট-ইন করতে হবে:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
অতিরিক্ত উন্নতি
- অ্যাক্টিভিটি এম্বেডিং — অটো-সেভ ও রিস্টোর: WindowManager এখন আপনার অ্যাক্টিভিটি এম্বেডিং স্প্লিটের স্টেট অটোমেটিক সেভ ও রিস্টোর করতে পারবে। এর ফলে প্রসেস রিক্রিয়েশন জুড়ে ব্যবহারকারীর লেআউট বজায় রাখা যায়, যার ফলে আরও স্থিতিশীল ও সামঞ্জস্যপূর্ণ অভিজ্ঞতা পাওয়া যায়। ডেভেলপারদের আর ম্যানুয়ালি স্টেট সেভ ও রিস্টোর করতে হবে না, তবে তারা EmbeddingConfiguration#isAutoSaveEmbeddingState প্রপার্টি সেট করে অটোমেটিক অপ্ট-ইন করতে পারবেন।
- উন্নত WindowMetrics: আপনি এখন শুধুমাত্র অ্যাক্টিভিটি কনটেক্সট থেকে নয়, অ্যাপ্লিকেশন কনটেক্সট থেকেও WindowMetrics গণনা করতে পারবেন। এটি আপনার অ্যাপের বিভিন্ন অংশ থেকে উইন্ডো সংক্রান্ত তথ্য অ্যাক্সেস করার জন্য আরও বেশি নমনীয়তা প্রদান করে।
কীভাবে শুরু করবেন
আপনার Android প্রোজেক্টে নতুন বড় ও অতি-বড় সাইজের ক্লাস এবং অন্যান্য ১.৫ ফিচার ব্যবহার করা শুরু করতে, build.gradle.kts-এ আপনার অ্যাপের ডিপেন্ডেন্সি লেটেস্ট স্থিতিশীল ভার্সনে আপডেট করুন:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5 হল সম্পূর্ণ অ্যাডাপ্টিভ অ্যাপ তৈরি করার ক্ষেত্রে আরেকটি পদক্ষেপ যা Android ফর্ম ফ্যাক্টর জুড়ে চলে। পরিবর্তন ও বাগ ফিক্সের সম্পূর্ণ তালিকা দেখতে অফিসিয়াল রিলিজ নোট দেখুন।
কোডিং করে আনন্দ পান!
-
প্রোডাক্ট সম্পর্কিত খবরAndroid-এ মোবাইল ও ডেস্কটপ কম্পিউটিংকে আরও কাছাকাছি নিয়ে আসার ক্ষেত্রে একটি গুরুত্বপূর্ণ মাইলস্টোন ঘোষণা করতে পেরে আমরা আনন্দিত: Android 16 QPR3 রিলিজের সাথে কানেক্ট করা ডিসপ্লে সংক্রান্ত সহায়তা এখন সাধারণভাবে উপলভ্য!
Francesco Romano • ৭ মিনিট রিড -
প্রোডাক্ট সম্পর্কিত খবরAndroid ডেভেলপার হিসেবে, অ্যাপ ডেভেলপমেন্টের জন্য আপনি যেসব এজেন্ট, LLM, টুল ও কমান্ড-লাইন ইন্টারফেস (CLI) ব্যবহার করেন, সেই ব্যাপারে আপনার কাছে অনেক বিকল্প আছে। আপনি যেভাবে তৈরি করতে চান না কেন, আমাদের লক্ষ্য হল আপনাকে সুন্দর, হাই-কোয়ালিটি Android অ্যাপ তৈরি করতে সাহায্য করা।
Simona Milanovic • ৪ মিনিট রিডিং টাইম -
প্রোডাক্ট সম্পর্কিত খবরGoogle Play-তে, আমরা ক্রমাগত আমাদের সাবস্ক্রিপশন প্ল্যাটফর্মের পরিধি বাড়াচ্ছি যাতে আপনি ব্যবসা বাড়াতে, নতুন বিজনেস মডেলের সাথে মানিয়ে নিতে এবং ব্যবহারকারীদের ঠিক যেখানে প্রয়োজন সেখানে তাদের চাহিদা পূরণ করতে পারেন।
Sheenam Mittal • ৪ মিনিট রিডিং টাইম
আপনার ইনবক্সে প্রতি সপ্তাহে Android ডেভেলপমেন্ট সংক্রান্ত লেটেস্ট ইনসাইট পান।