পণ্যের খবর

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

৩ মিনিটের পাঠ
Francesco Romano
ডেভেলপার সম্পর্ক প্রকৌশলী, অ্যান্ড্রয়েড

আমরা আনন্দের সাথে জানাচ্ছি যে, Jetpack WindowManager 1.5.0 এখন স্থিতিশীল!

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

উইন্ডো ম্যানেজার ১.৫ এই বৈচিত্র্যময় ডিভাইস পরিবেশের জন্য উন্নততর টুল প্রদানের উপর আলোকপাত করে।

উইন্ডো ম্যানেজার ১.৫-এ নতুন কী আছে

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

নতুন জানালার আকারের শ্রেণিবিভাগ: বড় এবং অতিরিক্ত বড়

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

উইন্ডো সাইজ ক্লাস হলো আমাদের নিজস্ব ও সুনির্দিষ্ট ভিউপোর্ট ব্রেকপয়েন্টের একটি সেট, যা আপনাকে অ্যাডাপ্টিভ লেআউট ডিজাইন ও ডেভেলপ করতে সাহায্য করে। ১.৫ সংস্করণে, আমরা এই নির্দেশিকাটি সাধারণ ট্যাবলেটের চেয়ে বড় স্ক্রিনগুলোর জন্যও প্রসারিত করছি।

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

  • বড়: ১২০০ডিপি থেকে ১৬০০ডিপি পর্যন্ত প্রস্থের জন্য
  • অতিরিক্ত-বৃহৎ: ১৬০০ডিপি বা তার বেশি প্রস্থের জন্য
window_size_classes_width.png

ডিসপ্লে প্রস্থের উপর ভিত্তি করে উইন্ডোর আকারের বিভিন্ন শ্রেণিবিভাগ।

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

অ্যান্ড্রয়েড ১৬ কিউপিআর১ বিটা ২ থেকে অ্যান্ড্রয়েড কানেক্টেড ডিসপ্লে সমর্থন করে, যা ব্যবহারকারীদের তাদের ডিভাইসের সাথে একটি বাহ্যিক ডিসপ্লে সংযুক্ত করে সেটিকে একটি বড় স্ক্রিনসহ ডেস্কটপের মতো টুলে রূপান্তরিত করার সুযোগ দেয়।

ADB_5350_asset.gif

ফোনটি একটি বাহ্যিক ডিসপ্লের সাথে সংযুক্ত, এবং সেই ডিসপ্লেতে একটি ডেস্কটপ সেশন চলছে।

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

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

অত্যন্ত বড় ডিসপ্লে আকারের জন্য আনুষ্ঠানিক ব্রেকপয়েন্ট প্রদান করার মাধ্যমে, উইন্ডো ম্যানেজার ১.৫ আপনাকে এমন লেআউট চালু করার জন্য একটি স্পষ্ট সংকেত দেয় যা বিশেষভাবে একটি উৎপাদনশীল ও তথ্যবহুল ডেস্কটপ অভিজ্ঞতার জন্য ডিজাইন করা হয়েছে।

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

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

আপনার গ্রেডল বিল্ড ফাইলে নতুন ব্রেকপয়েন্টগুলো ব্যবহার করার কথা ঘোষণা করেই কেবল আপনি এটি চালু করতে পারবেন:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

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

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

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

আপনার অ্যান্ড্রয়েড প্রজেক্টে নতুন Large ও Extra-large সাইজ ক্লাস এবং অন্যান্য 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 হলো অ্যান্ড্রয়েডের বিভিন্ন ফর্ম ফ্যাক্টরে চলার উপযোগী সম্পূর্ণ অ্যাডাপ্টিভ অ্যাপ তৈরির ক্ষেত্রে আরও একটি অগ্রগতি। পরিবর্তন এবং বাগ ফিক্সের সম্পূর্ণ তালিকার জন্য অফিসিয়াল রিলিজ নোট দেখুন।

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

    লিখেছেন:

    পড়তে থাকুন