প্রোডাক্ট সংক্রান্ত খবর

Jetpack WindowManager 1.5 স্থিতিশীল

২ মিনিট লাগবে
Francesco Romano-এর প্রোফাইল দেখুন
Francesco Romano ডেভেলপার রিলেশনস ইঞ্জিনিয়ার, Android

আমরা আনন্দের সাথে জানাচ্ছি যে Jetpack WindowManager 1.5.0 এখন স্টেবল!

এই রিলিজটি WindowManager-এ অ্যাডাপ্টিবিলিটির শক্তিশালী ভিত্তির উপর তৈরি করা হয়েছে, যা সব স্ক্রিন সাইজে দারুণ দেখায় এমন পালিশ করা, অ্যাডাপ্টিভ UI তৈরি করা আরও সহজ করে তোলে। Android ইকোসিস্টেমের ক্রমাগত বৃদ্ধির সাথে সাথে, ব্যবহারকারীরা আগের চেয়ে অনেক বেশি বিভিন্ন ধরনের ডিভাইসে অ্যাপের সাথে ইন্টার‍্যাক্ট করছেন: ফোন এবং ফোল্ডেবল থেকে শুরু করে ট্যাবলেট, কানেক্ট করা ডিসপ্লে, Chromebook এবং এমনকি পার্ক করা মোডে গাড়ির ডিসপ্লেতেও।

WindowManager 1.5-এর মূল লক্ষ্য হল এই ধরনের বিভিন্ন ডিভাইসের জন্য আরও ভালো টুল প্রদান করা।

WindowManager 1.5-এ নতুন কী আছে

এই স্টেবল রিলিজ খুব বড় স্ক্রিনের জন্য নতুন ব্রেকপয়েন্ট নিয়ে আসে, অ্যাক্টিভিটি এম্বেডিং API উন্নত করে এবং উইন্ডো মেট্রিক্স গণনা করার জন্য আরও নমনীয়তা প্রদান করে।

নতুন উইন্ডো সাইজ ক্লাস: বড় এবং অতিরিক্ত বড়

1.5-এর সবচেয়ে বড় আপডেট হল, উইন্ডোর প্রস্থের সাইজের জন্য দুটি নতুন ক্লাস যোগ করা হয়েছে: বড় এবং অতিরিক্ত বড়।

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

এখানে নতুন প্রস্থ ব্রেকপয়েন্ট দেওয়া হল:

  • বড়: ১২০০ডিপি থেকে ১৬০০ডিপি প্রস্থের জন্য
  • অতিরিক্ত বড়: ≥১৬০০ডিপি প্রস্থের জন্য
window_size_classes_width.png

ডিসপ্লের প্রস্থের উপর ভিত্তি করে বিভিন্ন উইন্ডো সাইজ ক্লাস। 

এগুলি কেন গুরুত্বপূর্ণ?

Android 16 QPR1 Beta 2 থেকে শুরু করে, Android কানেক্টেড ডিসপ্লে সাপোর্ট করে, যা ব্যবহারকারীদের তাদের ডিভাইসে একটি এক্সটার্নাল ডিসপ্লে অ্যাটাচ করতে এবং এটিকে একটি বড় স্ক্রিন সহ ডেস্কটপের মতো টুলে রূপান্তর করতে দেয়।

ADB_5350_asset.gif

এক্সটার্নাল ডিসপ্লেতে ডেস্কটপ সেশন সহ ফোনটি এক্সটার্নাল ডিসপ্লেতে কানেক্ট করা আছে। 

এই নতুন ফিচার উপলভ্য হওয়ার ফলে, আরও বড় ডিসপ্লে অন্তর্ভুক্ত করার জন্য মতামত ভিত্তিক নির্দেশিকা গুরুত্বপূর্ণ। 

এইসব খুব বড় সারফেসে, ট্যাবলেটের বড় করা লেআউটকে শুধু স্কেল আপ করলে সবসময় ব্যবহারকারীর সেরা অভিজ্ঞতা পাওয়া যায় না। যেমন, কোনও ইমেল ক্লায়েন্ট, এক্সপ্যান্ড করা উইন্ডো সাইজ ক্লাসে দুটি প্যানেল (একটি মেলবক্স ও একটি মেসেজ) সহজেই দেখাতে পারে। কিন্তু একটি অতিরিক্ত বড় ডেস্কটপ মনিটরে, ইমেল ক্লায়েন্ট সুন্দরভাবে তিন বা এমনকি চারটি প্যানেল দেখাতে পারে—সম্ভবত একটি মেলবক্স, একটি মেসেজের তালিকা, সম্পূর্ণ মেসেজের কন্টেন্ট এবং একটি ক্যালেন্ডার/টাস্ক প্যানেল, সবই একবারে।

খুব বড় ডিসপ্লে সাইজের জন্য অফিসিয়াল ব্রেকপয়েন্ট প্রদান করে, 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 তৈরি করতে সাহায্য করে যা উইন্ডো সাইজ ক্লাস বা ডিভাইসের ভঙ্গির মতো বর্তমান উইন্ডো কনফিগারেশন অনুযায়ী অটোমেটিক নিজেকে মানিয়ে নেয়। 

সুসংবাদ হল, লাইব্রেরিটি নতুন ব্রেকপয়েন্টের সাথে ইতিমধ্যেই আপ-টু-ডেট! ভার্সন ১.২ (এখন রিলিজ ক্যান্ডিডেট স্টেজে আছে) থেকে শুরু করে, ডিফল্ট প্যান স্ক্যাফোল্ড ডিরেক্টিভ ফাংশন বড় এবং অতিরিক্ত-বড় উইন্ডোর প্রস্থের সাইজ ক্লাসকে সাপোর্ট করে।

আপনি নতুন ব্রেকপয়েন্ট ব্যবহার করতে চান তা আপনার Gradle বিল্ড ফাইলে ঘোষণা করে আপনাকে শুধু অপ্ট-ইন করতে হবে:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

অতিরিক্ত উন্নতি

  • অ্যাক্টিভিটি এম্বেডিং — অটোমেটিক সেভ ও রিস্টোর করা: WindowManager এখন আপনার অ্যাক্টিভিটি এম্বেডিং স্প্লিটের স্ট্যাটাস অটোমেটিক সেভ ও রিস্টোর করতে পারে। এটি প্রসেস রিক্রিয়েশন জুড়ে ব্যবহারকারীর লেআউট বজায় রাখতে সাহায্য করে, যার ফলে আরও স্থিতিশীল ও সামঞ্জস্যপূর্ণ অভিজ্ঞতা পাওয়া যায়। ডেভেলপারদের আর ম্যানুয়ালি স্টেট সেভ ও রিস্টোর করতে হবে না, তবে তারা EmbeddingConfiguration#isAutoSaveEmbeddingState প্রপার্টি সেট করে অটোমেটিক সেভ করার বিকল্প বেছে নিতে পারবেন।
  • Expanded WindowMetrics: আপনি এখন WindowMetrics শুধু Activity context থেকে নয়, Application context থেকেও হিসেব করতে পারবেন। এটি আপনার অ্যাপের বিভিন্ন অংশ থেকে উইন্ডোর তথ্য অ্যাক্সেস করার জন্য আরও নমনীয়তা প্রদান করে।

কীভাবে শুরু করবেন

আপনার Android প্রোজেক্টে নতুন বড় ও অতিরিক্ত বড় সাইজের ক্লাস এবং অন্যান্য 1.5 ফিচার ব্যবহার করা শুরু করতে, 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 ফর্ম ফ্যাক্টর জুড়ে চলে। পরিবর্তন ও ত্রুটি সমাধানের সম্পূর্ণ তালিকা দেখতে অফিসিয়াল রিলিজ নোট চেক করুন।

কোডিং উপভোগ করুন!

লিখেছেন:
পড়া চালিয়ে যান