কমিউনিটি

Now in Android #১২১

৯ মিনিট পড়ার সময়
ড্যানিয়েল গ্যালপিনের প্রোফাইল দেখুন
Daniel Galpin ডেভেলপার অ্যাডভোকেট

Now in Android-এ স্বাগতম, Android ডেভেলপমেন্টের জগতে নতুন এবং উল্লেখযোগ্য কী আছে তার জন্য আপনার চলমান গাইড।

Android 16 QPR2 বিটা 1, Android Studio Narwhal ফিচার ড্রপ, Jetpack Compose 1.9, Media 3 1.8, শেপ মর্ফিং এবং Compose-এ অটোফিল ও আরও অনেক কিছু সম্পর্কে জানতে পড়ুন।

আপনি ভিডিওর সারসংক্ষেপ দেখতে পারবেন:

 

 

আমাদের একটি পডকাস্টও আছে।

তবে এই পোস্টে সবচেয়ে বিস্তারিত তথ্য আছে, তাই পড়তে থাকুন!

Android 16 QPR2 Beta 1 এসে গেছে ✨

Android 16 QPR2-এর প্রথম বিটা এখন উপলভ্য, Android মাইনর SDK ভার্সন সহ Android-এর প্রথম রিলিজ। SDK-এর মাইনর ভার্সনে নতুন API থাকতে পারে যা প্ল্যাটফর্মের ফিচারকে আরও উন্নত করে, তবে targetSdkVersion গেটেড আচরণে পরিবর্তন আনতে পারে না। এর ফলে, আপনার অ্যাপের সাথে এটি কাজ করছে কিনা তা পরীক্ষা করার প্রয়োজনীয়তা কমে যায়।

sdk-release-graph.webp

আপনি VERSION_CODES_FULL এনিউমারেশনের বিপরীতে SDK_INT_FULL চেক করে নতুন API কল করতে পারবেন:

if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) {
  // Call new APIs from the Android 16 QPR2 release
}

uses-sdk ম্যানিফেস্ট অ্যাট্রিবিউটে VERSION_CODES_FULL ব্যবহার করা যাবে না।

QPR2 Beta 1-এর কিছু গুরুত্বপূর্ণ আপডেট এখানে দেওয়া হল।

UI, সিস্টেম অভিজ্ঞতা ও অ্যাক্সেসিবিলিটি:

  • ডার্ক থিম পছন্দ করেন এমন ব্যবহারকারীদের জন্য এক্সপ্যান্ডেড ডার্ক থিম বিকল্পটি বুদ্ধিমত্তার সাথে লাইট অ্যাপগুলিকে ইনভার্ট করে।
  • আপনার অ্যাপে মনোক্রোম লেয়ার না থাকলে, সিস্টেম অটো-থিমযুক্ত অ্যাপ আইকন তৈরি করতে পারে।
  • শেয়ারশিট খোলা থাকাকালীন ইন্টার‍্যাক্টিভ চুজার সেশন আপনার অ্যাপ UI চালু রাখে, ChooserManager এবং ChooserSession ব্যবহার করে।
  • একটি নতুন ডেটা ট্রান্সফার API, Android এবং iOS-এর মধ্যে আরও নির্ভরযোগ্য এবং নিরাপদ ডেটা মাইগ্রেশন সক্ষম করে, যার জন্য আপনার অ্যাপের ডেটা এক্সট্র্যাকশন নিয়ম XML এবং BackupAgent প্রয়োগের আপডেট প্রয়োজন।
  • PdfRenderer.Page-এর মাধ্যমে PDF ডকুমেন্ট অ্যানোটেট ও এডিট করার জন্য android.graphics.pdf প্যাকেজ আরও উন্নত করা হয়েছে।
  • ViewConfiguration ভ্যালু এখন স্বতন্ত্র ভার্চুয়াল ডিভাইসের জন্য কাস্টমাইজ করা হয়েছে; মাল্টি-ডিসপ্লে সিনারিওর জন্য ViewConfiguration.get(context)-এ মাইগ্রেট করুন।
  • View.performHapticFeedback(HapticFeedbackRequest)-এর সাথে VibrationAttributes নির্দিষ্ট করে আপনি আরও সূক্ষ্ম হ্যাপটিক ফিডব্যাক কন্ট্রোল পাবেন
  • কুইক সেটিংস টাইল এখন AndroidManifest.xml ফাইলে পূর্বনির্ধারিত বিভাগে অ্যাসাইন করা যাবে।

মিডিয়া ও অডিও:

  • ইমারসিভ অডিও মডেল ও ফর্ম্যাট (IAMF)-এর জন্য সফ্টওয়্যার ডিকোডিং, একটি ওপেন স্পেশিয়াল অডিও ফর্ম্যাট।
  • ব্লুটুথ LE অডিও ডিভাইসের জন্য ব্যক্তিগত অডিও শেয়ারিং সরাসরি সিস্টেমের আউটপুট সুইচারে ইন্টিগ্রেট করা হয়।
  • ব্যবহারকারীরা HDR/SDR ব্রাইটনেস স্লাইডার ব্যবহার করে HDR-এর ব্রাইটনেস কন্ট্রোল করতে পারবেন
  • ফটো পিকার এক্সট্রা নির্দিষ্ট অ্যালবাম বা সার্চ কোয়েরি হাইলাইট করতে পারে।

কানেক্টিভিটি:

  • কম্প্যানিয়ন ডিভাইস ম্যানেজমেন্ট (CDM) সংক্রান্ত উন্নতি আপনাকে কাস্টম ডিভাইস আইকন প্রদান করতে, EVENT_ASSOCIATION_REMOVED কলব্যাক শুনতে এবং DeviceId ব্যবহার করে ক্রস-অ্যাপ যাচাইকরণ চালু করতে দেয়।
  • ব্লুটুথ আপডেটে BluetoothLeScanner (ScanSettings.SCAN_TYPE_PASSIVE)-এর জন্য প্যাসিভ স্ক্যানিং সহায়তা, বন্ড লস কারণ (BluetoothDevice.EXTRA_BOND_LOSS_REASON) এবং পরিষেবা UUID (BluetoothDevice.EXTRA_UUID_LE)-এর সরাসরি রিট্রিভাল অন্তর্ভুক্ত।
  • ওয়াই-ফাই RTT রেঞ্জিং আপডেট (RttStationRangingParams) স্টেশন অনুযায়ী রেঞ্জিং সাপোর্ট করে।
  • IMS P-Associated-URI হেডার থেকে ফোন নম্বর পার্স ও যাচাই করার জন্য নতুন PhoneNumberManager উপলভ্য।
  • MediaRouter নেটওয়ার্ক গোপনীয়তা সংক্রান্ত উন্নতি ব্লুটুথ ও UWB-এর মতো নতুন মাধ্যমে কাস্ট করার সুবিধা দেয়; আপনার সিস্টেম আউটপুট সুইচার ব্যবহার করা উচিত অথবা কাস্টম ইন-অ্যাপ পিকারের জন্য NEARBY_DEVICES অনুমতি চাওয়া উচিত।

গোপনীয়তা ও নিরাপত্তা:

  • নতুন সিস্টেম-লেভেল নিরাপত্তা স্ট্যাটাস, 'সুরক্ষিত লক ডিভাইস', ডিভাইস লক করে এবং আনলক করার জন্য প্রাথমিক যাচাইকরণ প্রয়োজন।
  • ব্যবহারকারী নিজে ইন্টার‌্যাক্ট করতে পারেন এমন টগল ফোন চুরি থেকে সুরক্ষার জন্য যোগ করা হয়েছে যাতে "অসফল যাচাইকরণ লক" চালু/বন্ধ করা যায়।

ডেভেলপার প্রোডাক্টিভিটি:

  • নতুন AppWidgetManager API আপনাকে উইজেট এনগেজমেন্ট মেট্রিক্সের জন্য কোয়েরি করার অনুমতি দেয়।
  • ADB-এর মাধ্যমে ইনস্টল করা ডিবাগ করা যায় এমন অ্যাপ এখন ১৬ কেবি পৃষ্ঠার সাইজের কম্প্যাটিবিলিটির জন্য আগাম সতর্কতা পাবে।
  • ProfilingManager নতুন সিস্টেম-ইনিশিয়েটেড প্রোফাইলিং ট্রিগারের জন্য সহায়তা যোগ করে এবং requestRunningSystemTrace ব্যাকগ্রাউন্ড ট্রেস ক্যাপচার করে।
  • ডেভেলপার বিকল্পে "ভার্বোস প্রিন্ট লগিং" টগল Android প্রিন্ট ফ্রেমওয়ার্কের জন্য অতিরিক্ত ডিবাগ তথ্য প্রদান করে।
  • ডিফল্ট নয় এমন ডিসপ্লেতে স্ক্রিনশটের জন্য নতুন UiAutomation API এবং পাবলিক AccessibilityWindowInfo.refresh-এর মাধ্যমে ডেস্কটপ এবং মাল্টি-ডিসপ্লে অভিজ্ঞতার জন্য আরও শক্তিশালী টেস্টিং চালু করা হয়েছে।
  • নতুন androidx.core:core-backported-fixes লাইব্রেরির জন্য API সাপোর্ট যোগ করা হয়েছে।
  • Linux Terminal-এ এখন GUI অ্যাপ কাজ করে
  • WindowInspector.addGlobalWindowViewsListener রিয়েল-টাইম রুট ভিউ পরিবর্তন সংক্রান্ত বিজ্ঞপ্তি সাপোর্ট করে।

আপনি ওভার-দ্য-এয়ার বিটা আপডেট পেতে বা Android Studio-তে Android Emulator-এর সাথে ৬৪-বিট সিস্টেম ইমেজ ব্যবহার করতে, কাজ করে এমন যেকোনও Pixel ডিভাইস এনরোল করতে পারবেন। প্ল্যাটফর্মের স্থিতিশীলতা ২০২৫ সালের অক্টোবরের মধ্যে অর্জন করার লক্ষ্য নেওয়া হয়েছে।

Android Studio Narwhal ফিচার ড্রপ এখন স্টেবল — এজেন্ট মোড ব্যবহার করা শুরু করুন 🐳

narwhal.webp

Android Studio Narwhal ফিচার ড্রপ এখন স্টেবল, নতুন ফিচার ও উন্নতির মধ্যে রয়েছে:

  • মাল্টি-স্টেজ কোডিং টাস্কের জন্য Gemini in Android Studio: এজেন্ট মোড উপলভ্য
  • প্রম্পট লাইব্রেরি নিয়ম আপনার প্রোজেক্টের প্রয়োজন অনুযায়ী Gemini-র AI আউটপুট কাস্টমাইজ করে।
  • Gemini-র মাধ্যমে UI ট্রান্সফর্ম করুন ফিচার Compose UI-তে আইটারেট করার জন্য ন্যাচারাল ল্যাঙ্গুয়েজ UI ব্যবহার করে।
  • এম্বেড করা XR Android এমুলেটর, একটি নতুন XR টেমপ্লেট এবং XR-এর জন্য এম্বেড করা লেআউট ইন্সপেক্টরের সাথে ইমারসিভ ডেভেলপমেন্ট সাপোর্ট
  • Android ডিভাইস স্ট্রিমিংয়ে Android পার্টনার ডিভাইস ল্যাবের মাধ্যমে ডিভাইস অ্যাক্সেস করার সুবিধা বাড়ানো হয়েছে।
  • উন্নত কোড নেভিগেশন এবং নতুন কম্পোজ প্রিভিউ পিকারের মাধ্যমে আরও ভালো কম্পোজ প্রিভিউ
  • আরও দ্রুত বিল্ড পারফর্ম্যান্সের জন্য ডিফল্ট হিসেবে K2 Kotlin কম্পাইলার চালু করা হয়েছে
  • আসন্ন ১৬কেবি পৃষ্ঠা-সাইজের ডিভাইসের জন্য আপনাকে প্রস্তুত করতে সাহায্য করার জন্য লিন্ট সতর্কতা, বিশ্লেষণ এবং একটি এমুলেটর সহ ১৬কেবি পৃষ্ঠা সাইজ টুলিং।

Firebase দ্বারা পরিচালিত Android ডিভাইস স্ট্রিমিং

device-streaming.webp

Firebase দ্বারা পরিচালিত Android ডিভাইস স্ট্রিমিং, Android পার্টনার ডিভাইস ল্যাবের জন্য স্টেবল সাপোর্ট চালু করেছে, যা আপনাকে Samsung, Xiaomi, OPPO, OnePlus এবং vivo সহ OEM পার্টনারদের দ্বারা হোস্ট করা ফিজিক্যাল Android ডিভাইসের সাথে রিমোটলি কানেক্ট করার সুবিধা দেয়।

Android Studio-র জন্য মাসিক রিলিজের মাধ্যমে ডেভেলপমেন্টের গতি বাড়ানো — আগের চেয়ে ২ গুণ বেশি ঘন ঘন রিলিজ করা

accelarating-releases.webp

Android Studio মাসিক স্টেবল রিলিজ ক্যাডেন্সে ট্রানজিশন করছে যাতে আপনি নতুন ফিচার ও গুরুত্বপূর্ণ সমস্যার সমাধান দ্রুত পেতে পারেন। Android Studio IDE প্রতি মাসে আপডেট করা হলেও, নতুন IntelliJ প্ল্যাটফর্ম ভার্সন প্রতি কয়েক মাস অন্তর রিলিজ করা হবে এবং ফিচার ড্রপ অন্তর্বর্তী স্টেবল রিলিজ পূরণ করবে। Android Emulator এবং Android Gradle প্লাগ-ইন প্রতি দুই মাস অন্তর আলাদাভাবে আপডেট হতে থাকবে। টেস্টিং ইনফ্রাস্ট্রাকচারে দীর্ঘমেয়াদী বিনিয়োগের মাধ্যমে এই দ্রুত রিলিজ শিডিউল সম্ভব হয়েছে।

Jetpack Compose-এর আগস্ট ’২৫ রিলিজে নতুন কী আছে 🚀

jetpack-compose.webp

Jetpack Compose-এর আগস্ট ’২৫ রিলিজ (ভার্সন ১.৯) এখন স্টেবল। এই রিলিজে বক্স-শ্যাডো এফেক্ট রেন্ডার করার জন্য Modifier.dropShadow এবং Modifier.innerShadow নিয়ে আসা হয়েছে। নতুন onVisibilityChanged এবং onFirstVisible মডিফায়ার আপনাকে UI আপডেট বা ইম্প্রেশন লগিংয়ের জন্য এলিমেন্টের দৃশ্যমানতা ট্র্যাক করতে দেয়। আপনি টেক্সট ট্রান্সফর্মেশনের জন্য TextFieldBuffer.addStyle ব্যবহার করে OutputTransformation-এর মধ্যে রিচ স্টাইলিং প্রয়োগ করতে পারবেন।

LazyLayout বিল্ডিং ব্লক এখন স্টেবল এবং উন্নত প্রিফেচিং সহ উন্নত লেজি লিস্ট ও গ্রিড পারফর্ম্যান্সের জন্য আপনি LazyLayoutCacheWindow নির্ধারণ করতে পারবেন। Scrollable2D-এর মাধ্যমে ফ্লিংগিং ও নেস্টেড স্ক্রলিং সহ টু-ডাইমেনশনাল স্ক্রলিং করা যায়। এর সাথে, স্ক্রল ও নেস্টেড স্ক্রল ইন্টারঅপারেবিলিটি উন্নত করার জন্য Views-এর সাথে বিভিন্ন উন্নতি করা হয়েছে। একটি অপ্ট-ইন API (Composer.setDiagnosticStackTraceEnabled) স্ট্যাক ট্রেসে আরও সমৃদ্ধ ক্র্যাশ লোকেশনের বিবরণ প্রদান করে, যা শুধুমাত্র ডিবাগ বিল্ডের জন্য সাজেস্ট করা হয়। নতুন রানটাইম-অ্যানোটেশন লাইব্রেরিতে নতুন @RememberInComposition এবং @FrequentlyChangingValue অ্যানোটেশন, সংশ্লিষ্ট লিন্ট চেকের সাথে উপলভ্য। Modifier.appendTextContextMenuComponents এবং Modifier.filterTextContextMenuComponents ব্যবহার করে সংশ্লিষ্ট মেনু কাস্টমাইজ করা যেতে পারে। Android Gradle Plugin (AGP) / Lint ভার্সন 8.8.2 বা তার পরবর্তী যেকোনও ভার্সন এখন প্রয়োজন।

Media3 1.8.0 — নতুন কী আছে? 🚀

media3.webp

Media3 1.8.0 এখন উপলভ্য, এতে বেশ কিছু নতুন ফিচার ও উন্নতি করা হয়েছে। ExoPlayer-এ ঘন ঘন, ব্যবহারকারী-চালিত অনুসন্ধানের জন্য একটি স্ক্রাবিং মোড যোগ করা হয়েছে, যা আপনি ExoPlayer.setScrubbingModeEnabled-এর মাধ্যমে চালু করতে পারবেন। HlsInterstitialsAdsLoader এখন সার্ভার-গাইডেড বিজ্ঞাপন যোগ করার জন্য লাইভ স্ট্রিম সাপোর্ট করে।

MetadataRetriever আপডেট করা হয়েছে যাতে আপনি প্লেব্যাক ছাড়াই মিডিয়া আইটেমের সময়সীমা সংক্রান্ত তথ্য পেতে পারেন। Transformer-এর জন্য, এই রিলিজে experimentalSetMp4EditListTrimEnabled-এর সাথে MP4 এডিট লিস্ট ব্যবহার করে আরও দ্রুত ট্রিম অপারেশন এবং CodecDbLite-এর মাধ্যমে চিপসেট-নির্দিষ্ট এনকোডার অপ্টিমাইজেশন চালু করা হয়েছে, যা DefaultEncoderFactory.Builder-এ setEnableCodecDbLite কল করার মাধ্যমে চালু করা হয়।

অতিরিক্ত আপডেটের মধ্যে রয়েছে PreCacheHelper-এর সাথে Downloader-এ আংশিক ডাউনলোড সংক্রান্ত সহায়তা, ExoPlayer-এ অটোমেটিক XR অডিও রাউটিং এবং আরও দক্ষ MediaCodec ইন্টার‍্যাকশন। MediaSession মডিউল এখন ডিফল্ট হিসেবে বিজ্ঞপ্তি আরও বেশিক্ষণ দেখায় এবং মিডিয়া সেশন ডেমো অ্যাপ প্লেব্যাক আবার চালু করার কার্যকারিতা দেখায়। Kotlin ও Compose-এর মাধ্যমে তৈরি করা নতুন কম্পোজিশন ডেমো অ্যাপ, উন্নত মাল্টি-অ্যাসেট ভিডিও এডিটিং দেখায়।

নিবন্ধ 📚

#WeArePlay: আরও টেকসই বিশ্ব গড়ে তোলার জন্য কোডিং করছেন এমন ব্যক্তিদের সাথে পরিচিত হন

weareplay.webp

#WeArePlay উদ্যোগ পরিবেশগত চ্যালেঞ্জের সমাধান করে এমন Android অ্যাপ ও গেম হাইলাইট করে। Mayla, Flávia, Andréia এবং Ariane-এর তৈরি করা BoRa — Iguaçu National Park গেমটি পার্ক পরিদর্শনের সময় প্রকৃতি শিক্ষার জন্য গ্যামিফাইড এবং অ্যাক্সেসযোগ্য ইন্টারেক্টিভ অভিজ্ঞতা প্রদান করে। লুইস ও জাস্টিনের অ্যাপ, CyberTracker, নিরক্ষর আদিবাসী ট্র্যাকারদের আইকন-ভিত্তিক ইন্টারফেসের মাধ্যমে জীববৈচিত্র্য ডেটা রেকর্ড করার অনুমতি দেয়, যা সংরক্ষণ প্রচেষ্টাকে সমর্থন করে। সবশেষে, ভারতী ও সৌরভের সহ-প্রতিষ্ঠিত Earth5R পরিবেশগত শিক্ষা প্রদান করে এবং ব্যবহারকারীদের ইন্টার্নশিপ ও প্রোজেক্টের সাথে কানেক্ট করে যাতে তারা গ্রিন ইকোনমির জন্য প্রয়োজনীয় দক্ষতা অর্জন করতে পারেন।

HDR কী? 🌟

hdr.webp

হাই ডায়নামিক রেঞ্জ (HDR) Android ডেভেলপারদের জন্য স্ট্যান্ডার্ড ডায়নামিক রেঞ্জের (SDR) বাইরে সর্বোচ্চ উজ্জ্বলতা বাড়াতে সাহায্য করে, যা উন্নত ভিজ্যুয়াল ফিডেলিটি প্রদান করে। Android-এ ভিডিও ও ছবির জন্য HDR কাজ করে, এর মধ্যে ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য UltraHDR-এর মতো প্রযুক্তিও অন্তর্ভুক্ত।

রঙ বোঝার ক্ষেত্রে তিনটি কম্পোনেন্ট আছে:

  • বিট ডেপথ: রঙের উপস্থাপনার নির্ভুলতা নির্ধারণ করে, বেশি ডেপথ থাকলে ট্রানজিশন আরও মসৃণ হয়।
  • ট্রান্সফার ফাংশন: নন-লিনিয়ার মানুষের ভিজ্যুয়াল রেসপন্সের জন্য অ্যাডজাস্ট করে, ডিসপ্লে করা লুমিন্যান্স বা রঙে নিউমেরিক্যাল পিক্সেল ভ্যালু ম্যাপ করে। উদাহরণ হিসেবে sRGB, HLG ও PQ-এর কথা বলা যেতে পারে।
  • কালার গ্যামাট: কোনও ডিভাইস যে রেঞ্জের রঙ দেখাতে পারে তা বোঝায়।

HDR সম্পর্কে সাধারণ ভুল ধারণা:

  • ভাইব্রেন্ট কালার: HDR-এর আগে Display P3 এবং Adobe RGB-এর মতো আরও বড় কালার গ্যামাট উপলভ্য ছিল এবং বেশিরভাগ ডিসপ্লে এখনও BT.2020 কন্টেন্টের সাথেও P3-তে ক্লিপ করে।
  • আরও বেশি কনট্রাস্ট/কালো রঙের আরও ভাল ডিটেল: HDR একই ডিসপ্লেতে SDR-এর থেকে বেশি কালো রঙ দেখায় না। OLED ডিসপ্লে দুটির জন্যই অসীম কনট্রাস্ট প্রদান করে। PQ ডার্ক অঞ্চলে আরও বিট বরাদ্দ করলেও, এটি কোনও ইউনিভার্সাল HDR ফিচার নয়।
  • উচ্চ বিট ডেপথ: কিছু HDR ভিডিও প্রোফাইল (যেমন, HDR10) ১০ বা ১২-বিট স্ট্রিম ব্যবহার করলেও, এটি সেইসব প্রোফাইলের ক্ষেত্রে নির্দিষ্ট এবং HDR-এর নিজস্ব বৈশিষ্ট্য নয়; উচ্চ বিট ডেপথ অন্যান্য ইমেজিং ফর্ম্যাটেও সাধারণ বিষয়।

HDR মূলত আরও বেশি সর্বোচ্চ উজ্জ্বলতা বোঝায়। এই "HDR হেডরুম" SDR-এর সাপেক্ষে একটি ফ্লোটিং অঞ্চল হিসেবে সংজ্ঞায়িত করা হয়। প্রথাগত HDR ভিডিওতে প্রায়ই ফিক্সড হেডরুম এনকোড করা হয়, তবে আধুনিক ডিসপ্লেতে ডায়নামিক হেডরুম ব্যবহার করা হয়, যার ফলে কোয়ালিটিতে পার্থক্য দেখা যেতে পারে। Ultra HDR এবং গেনম্যাপের মতো প্রযুক্তি বিটের দক্ষ ব্যবহারের মাধ্যমে বিকল্প অফার করে। Android-এর UI টুলকিট HDR অভিজ্ঞতা প্রদান করতে extendedRangeBrightness API ব্যবহার করে, এমনকি RGBA_8888-এর সাথেও।

ভিডিও 📹

শেপ মর্ফিং সহ উন্নত শেয়ার করা এলিমেন্ট | Jetpack Compose সংক্রান্ত পরামর্শ

Jetpack Compose এখন উন্নত শেয়ার করা এলিমেন্ট ট্রানজিশন, অত্যাধুনিক শেপ মর্ফিং এবং অ্যানিমেশন দেখানোর সুবিধা দেয়। ডেভেলপাররা অ্যাপের শীর্ষ স্তরে SharedTransitionLayout কনফিগার করতে পারেন এবং এলিমেন্ট লিঙ্ক করতে Modifier.sharedBounds ব্যবহার করতে পারেন।

শেপ মর্ফিং হল একটি গুরুত্বপূর্ণ নতুন ফিচার, যা Material 3-এর AndroidX গ্রাফিক্স শেপ লাইব্রেরি ব্যবহার করে তৈরি করা হয়েছে। এর মধ্যে রয়েছে নির্দিষ্ট শুরু/শেষের আকার সহ একটি Morph অবজেক্ট তৈরি করা, animateFloat (AnimatedVisibilityScope থেকে) ব্যবহার করে এর প্রগ্রেস চালানো এবং কাস্টম OverlayClip-এর মাধ্যমে ক্লিপ হিসেবে এটি প্রয়োগ করা। রিভিল এফেক্ট skipToLookaheadSize ও skipToLookaheadPosition ব্যবহার করে। এইসব উন্নত অ্যানিমেশন আগের ধাপে ফিরে যাওয়া সংক্রান্ত পূর্বাভাসের জেসচার-এর সাথেও মানানসই।

Android Studio-তে মাল্টিমডেল Gemini: AI-পরিচালিত UI ডেভেলপমেন্ট

Android Studio-তে Gemini AI, ডিজাইন থেকে কোড জেনারেট করে (ইমেজ-টু-কোড সহ), সিন্থেটিক ডেটা সহ কম্পোজ প্রিভিউ তৈরি করে এবং সরাসরি কমান্ডের মাধ্যমে আগে থেকে থাকা UI রিফাইন করে UI ডেভেলপমেন্টে সাহায্য করে।

রানটাইম-এনেবেল্ড SDK ব্যবহার করা

Android 14-এ SDK রানটাইম চালু করা হয়েছে, এটি একটি নতুন প্রযুক্তি যা গোপনীয়তা ও নিরাপত্তা বাড়াতে থার্ড-পার্টি SDK-কে একটি নিরাপদ, আলাদা প্রসেস স্যান্ডবক্সে আইসোলেট করে।

ডেভেলপারদের জন্য:

  • রানটাইম-এনেবেল্ড (RE) SDK এই আলাদা প্রসেসে এক্সিকিউট করা হয়।
  • রানটাইম-অ্যাওয়ার (RA) SDK আপনার অ্যাপের মধ্যে মধ্যস্থতাকারী হিসেবে কাজ করে।
  • SdkSandboxManagerCompat ব্যবহার করে RE SDK লোড করুন, সীমাবদ্ধতা (যেমন, ফোরগ্রাউন্ড, সিঙ্গল-লোড) লক্ষ্য করুন।
  • শিম টুলিং লো-লেভেল ইন্টার-প্রসেস কমিউনিকেশনকে সহজ করে তোলে।
  • SandboxedSdkView এবং SandboxedUiAdapter ব্যবহার করে RE SDK থেকে UI রেন্ডার করুন।
  • SdkActivityLauncher ব্যবহার করে SDK রানটাইম থেকে অ্যাক্টিভিটি লঞ্চ করুন।

WearOS Material 3 শেপ মর্ফিং | Jetpack Compose সংক্রান্ত পরামর্শ

Compose-এর জন্য Wear OS Material 3 এখন শেপ মর্ফিংকে সহজ করে তোলে। ডেভেলপাররা সহজেই IconButtonDefaults.animatedShapes-এর সাহায্যে গোল বোতামে অ্যানিমেটেড শেপের পরিবর্তন যোগ করতে পারেন, ButtonGroup কম্পোনেন্ট এবং Modifier.animateWidth() ব্যবহার করে প্রস্থের পরিবর্তন অ্যানিমেট করে এমন বোতাম গ্রুপ তৈরি করতে পারেন এবং উল্লম্বভাবে স্ক্রোল করা তালিকা (TransformingLazyColumn) তৈরি করতে পারেন যেখানে আইটেমগুলি স্ক্রিনের কিনারার কাছাকাছি আসার সাথে সাথে TransformationSpec ব্যবহার করে স্কেল এবং মর্ফ করে।

AndroidX রিলিজ 🚀

AndroidX-এ করা পরিবর্তনের সারসংক্ষেপ এখানে দেওয়া হল, Android অ্যাপ ডেভেলপারদের জন্য সবচেয়ে প্রাসঙ্গিক পরিবর্তনগুলিকে অগ্রাধিকার দেওয়া হয়েছে:

কম্পোজ লাইব্রেরির জন্য সামগ্রিক প্রভাবকারী পরিবর্তন:

  • ডিফল্ট minSdk API 23-এ বাড়ানো হয়েছে: androidx.compose animation, foundation, material, runtime এবং ui-এর জন্য, ডিফল্ট ন্যূনতম SDK ভার্সন API 21 থেকে API 23-এ সরানো হয়েছে। এর অর্থ হল, আপনি যদি এই Compose লাইব্রেরির লেটেস্ট আলফা ভার্সন ব্যবহার করেন, তাহলে আপনার অ্যাপের জন্য Android 6.0 (Marshmallow) বা তার পরের ভার্সন প্রয়োজন হবে।

Compose ডেভেলপারদের জন্য গুরুত্বপূর্ণ পরিবর্তন:

  • নতুন রিটেন API (Compose Runtime): rememberSaveable-এর মতো রিটেন API নিয়ে আসে, তবে এটি সেইসব ভ্যালুর জন্য যা সিরিয়ালাইজ না হয়ে কম্পোজিশন হায়ারার্কি থেকে বেরিয়ে যায়। সেভ করা ভ্যালুর চেয়ে এর লাইফস্প্যান কম এবং এটি ViewModel-এর মতো কাজ করে, কম্পোজিশনে অন্তর্ভুক্ত হতে পারে বা বাদ যেতে পারে এমন কম্পোজেবলের জন্য স্টেট ম্যানেজ করার নতুন উপায় প্রদান করে।
  • উন্নত শেয়ার করা এলিমেন্ট ট্রানজিশন (কম্পোজ অ্যানিমেশন ও UI): শেয়ার করা এলিমেন্ট ডায়নামিকভাবে চালু/বন্ধ করা, চলমান ট্রানজিশনের জন্য অ্যাকাউন্ট এবং শেয়ার করা এলিমেন্ট ডিসপোজ করা হলে বিকল্প টার্গেট বাউন্ড সেট করার জন্য নতুন API। লেআউট অ্যাঙ্কর করার জন্য নতুন Modifier.skipToLookaheadPosition উপলভ্য।
  • উন্নত পেজার প্রিফেচিং (কম্পোজ ফাউন্ডেশন): পেজারের প্রিফেচ স্ট্র্যাটেজি এখন একটি আইটেমের পরিবর্তে "ক্যাশে উইন্ডো" (১ ভিউপোর্ট সাইজ) ব্যবহার করে এবং প্রাথমিক প্রিফেচিং ডিফল্ট হিসেবে চালু করা থাকে। আরও মসৃণ স্ক্রলিংয়ের জন্য আইটেমগুলিও দীর্ঘ সময়ের জন্য রাখা হয়।
  • মাউস/টাচপ্যাডের জন্য রিফাইন করা ফোকাস হ্যান্ডলিং (কম্পোজ ফাউন্ডেশন ও UI): ফোকাস করা নোডের বাইরে পয়েন্টার ডাউন ইভেন্ট (মাউস বা টাচপ্যাড থেকে) ঘটলে, ComposeViews এখন অটোমেটিক ফোকাস সরিয়ে দেবে। এটি থেকে অপ্ট-আউট করা যেতে পারে।
  • কাস্টমাইজ করার উপযুক্ত ফোকাস রেকট্যাঙ্গেল (কম্পোজ ফাউন্ডেশন): FocusProperties এখন আপনাকে বাউন্ডিং বক্সের ডিফল্ট সেটিংয়ের পরিবর্তে কাস্টম ফোকাস এরিয়া নির্ধারণ করার সুবিধা দেয়, যার ফলে স্ক্রল করা যায় এমন কন্টেনারে ফোকাস ট্রাভার্সাল এবং "ভিউতে রাখুন" লজিক উন্নত হয়।
  • LifecycleOwner Composable (লাইফসাইকেল): একটি নতুন কম্পোজেবল UI ট্রির মধ্যে সরাসরি স্কোপ করা LifecycleOwner ইনস্ট্যান্স তৈরি করার অনুমতি দেয়। এটি বিশেষ করে কম্পোনেন্ট লাইফসাইকেল স্বাধীনভাবে ম্যানেজ করার জন্য এবং নেভিগেশনের মতো লাইব্রেরির জন্য উপযোগী।
  • SavedStateHandle (Lifecycle ও SavedState)-এ নালেবেল টাইপের জন্য সহায়তা: SavedStateHandle ও SavedStateRegistryOwner-এ নেটিভ সহায়তা সহ নালেবেল প্রপার্টি সেভ ও রিস্টোর করার সুবিধা সহজ করা হয়েছে।
  • নতুন LineHeightStyle.Mode.Tight (Compose Foundation ও UI): একটি নতুন টাইট মোড ছোট লাইনের উচ্চতা প্রয়োগ করতে সাহায্য করে, এমনকি এর অর্থ যদি লম্বা গ্লিফ কেটে ফেলা হয়, আরও সুনির্দিষ্ট টেক্সট লেআউট কন্ট্রোল অফার করে।
  • শব্দ বেছে নিতে ডবল ট্যাপ করুন (Compose Foundation): SelectionContainer ও BasicTextField-এ শব্দ বেছে নিতে ডবল ট্যাপ করার সুবিধা যোগ করা হয়েছে।
  • WindowInsets-এর আচরণে পরিবর্তন (Compose UI ও Foundation):
    ◦ ডিসপ্লে কাট-আউটের পাথ পেতে নতুন WindowInsets.cutoutPath API।
    ◦ isWindowInsetsDefaultPassThroughEnabled ফ্ল্যাগ সরিয়ে দেওয়া হয়েছে, ডিফল্ট হিসেবে WindowInsets-কে ব্যবহার না করার জন্য সেট করা হয়েছে, যাতে চাইল্ড ভিউ সেগুলি পেতে পারে।
  • AndroidView requestRectangleOnScreen সমাধান (Compose Foundation): AndroidViews-এর মাধ্যমে করা অনুরোধ (যেমন, EditText স্ক্রিনে থাকার চেষ্টা করা) এখন Compose-এ সঠিকভাবে প্রোপাগেট করা হয়।
  • উন্নত 2D মাউস হুইল স্ক্রলিং (Compose Foundation ও UI): নতুন টেস্ট API এবং আচরণ নিয়ন্ত্রণ করার জন্য ফ্ল্যাগ সহ 2D মাউস হুইল স্ক্রল ইভেন্টের জন্য আরও ভালো সহায়তা।

নতুন লাইব্রেরি ও ইউটিলিটি:

  • androidx.core:core-backported-fixes (নতুন লাইব্রেরি): এই নতুন লাইব্রেরি ডেভেলপারদের চেক করতে দেয় যে কোনও ডিভাইসে গুরুতর ত্রুটি সমাধান (যেমন, নির্দিষ্ট ক্যামেরা বাগের মতো প্ল্যাটফর্ম-লেভেল সমস্যা) প্রয়োগ করা হয়েছে কিনা। এর ফলে, কোনও পরিচিত সমস্যার সমাধান হয়েছে কিনা তার উপর নির্ভর করে ব্যবহারকারীকে বিভিন্ন অভিজ্ঞতা প্রদান করা সম্ভব হয়।

অন্যান্য উল্লেখযোগ্য পরিবর্তন:

  • গেম অ্যাক্টিভিটি ও ইনপুট: ১৬ কেবি পেজ সাইজের জন্য ডিফল্ট সহায়তা এবং GameActivity-এর জন্য মাউস সহায়তা যোগ করা হয়েছে।
  • Material3 টুলটিপ পজিশনিং: টুলটিপের জন্য আরও পজিশন প্রোভাইডার, যা অ্যাঙ্করের উপরে, নিচে, বাঁদিকে বা ডানদিকে প্লেসমেন্টের অনুমতি দেয়।
  • Material3 DatePicker সমাধান: DatePicker যাতে নম্বর ফর্ম্যাটিংয়ের জন্য নিজস্ব লোকাল মেনে চলে তা নিশ্চিত করে এবং RTL ডিসপ্লে সংক্রান্ত সমস্যার সমাধান করে।
  • TWA display_override সাপোর্ট (ব্রাউজার): display_override TWA ম্যানিফেস্ট প্রপার্টির জন্য সাপোর্ট যোগ করা হয়েছে, যা TWA ডিসপ্লের উপর আরও বেশি কন্ট্রোল প্রদান করে।
  • এক্সটার্নাল অ্যাপে (ব্রাউজার) প্রাথমিক URL লঞ্চ করুন: এক্সটার্নাল ব্রাউজারে TWA-এর প্রাথমিক URL লঞ্চ করার অনুমতি দিতে একটি ইনটেন্ট যোগ করা হয়েছে।

Android Developers Backstage

Android Developers Backstage-এর নতুন পর্ব এসে গেছে।

Compose-এ অটোফিল

Jetpack Compose 1.8-এ উল্লেখযোগ্যভাবে উন্নত অটোফিল ক্ষমতা চালু করা হয়েছে, যা Compose-এর সিম্যান্টিক্স সিস্টেমকে কাজে লাগায়। ডেভেলপাররা এখন প্রাসঙ্গিক কন্টেন্ট টাইপ সিম্যান্টিক্স (যেমন, ইউজারনেম, পাসওয়ার্ড) সহ টেক্সট ফিল্ড ট্যাগ করার মাধ্যমে সহজেই সিস্টেম-লেভেল অটোফিল ইন্টিগ্রেট করতে পারবেন, যার ফলে ম্যানুয়াল অটোফিল ট্রি ম্যানেজমেন্টের প্রয়োজনীয়তা দূর হবে এবং পারফর্ম্যান্স উন্নত হবে।

 

তাহলে এখন… 👋

এই সংস্করণে এইটুকুই, সাথে আছে Android 16 QPR2 বিটা ১, Android Studio Narwhal ফিচার ড্রপ, Jetpack Compose ১.৯, Media ৩ ১.৮, শেপ মর্ফিং এবং Compose-এ অটোফিল ও আরও অনেক কিছু।

Android ডেভেলপার ইউনিভার্স থেকে আপনার পরবর্তী আপডেটের জন্য শীঘ্রই আবার চেক করুন!

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