সম্প্রদায়

এখন অ্যান্ড্রয়েডে #121

৯ মিনিটের পাঠ
Daniel Galpin
ডেভেলপার অ্যাডভোকেট

‘নাউ ইন অ্যান্ড্রয়েড’-এ আপনাকে স্বাগতম, অ্যান্ড্রয়েড ডেভেলপমেন্ট জগতের নতুন ও উল্লেখযোগ্য বিষয়গুলোর উপর এটি আপনার চলমান নির্দেশিকা।

অ্যান্ড্রয়েড ১৬ কিউপিআর২ বিটা ১ , অ্যান্ড্রয়েড স্টুডিও নারহাল ফিচার ড্রপ , জেটপ্যাক কম্পোজ ১.৯ , মিডিয়া ৩ ১.৮ , কম্পোজে শেপ মর্ফিং ও অটোফিল এবং আরও অনেক কিছুর বিস্তারিত জানতে পড়তে থাকুন।

আপনি একটি ভিডিও সারাংশ দেখতে পারেন:

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

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

অ্যান্ড্রয়েড ১৬ কিউপিআর২ বিটা ১ এসে গেছে ✨

অ্যান্ড্রয়েড ১৬ কিউপিআর২ (QPR2)-এর প্রথম বেটা এখন উপলব্ধ, যা একটি মাইনর এসডিকে সংস্করণসহ প্রথম অ্যান্ড্রয়েড রিলিজ। মাইনর এসডিকে সংস্করণগুলোতে নতুন এপিআই (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 বিটা ১ থেকে প্রাপ্ত কিছু গুরুত্বপূর্ণ আপডেট নিচে দেওয়া হলো।

UI, সিস্টেম অভিজ্ঞতা এবং অ্যাক্সেসযোগ্যতা:

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

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

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

সংযোগ:

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

গোপনীয়তা এবং নিরাপত্তা:

  • সিকিউর লক ডিভাইস নামক একটি নতুন সিস্টেম-স্তরের নিরাপত্তা অবস্থা ডিভাইসগুলোকে লক করে রাখে এবং আনলক করার জন্য প্রাথমিক প্রমাণীকরণের প্রয়োজন হয়।
  • ফোন চুরি সুরক্ষা (Phoiled Authentication Lock) চালু/বন্ধ করার জন্য একটি ইউজার-ফেসিং টগল যুক্ত করা হয়েছে।

ডেভেলপার উৎপাদনশীলতা:

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

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

অ্যান্ড্রয়েড স্টুডিও নারওয়াল ফিচার ড্রপ এখন স্থিতিশীল — এজেন্ট মোড ব্যবহার শুরু করুন 🐳

narwhal.webp

অ্যান্ড্রয়েড স্টুডিও নারওয়াল ফিচার ড্রপ এখন স্থিতিশীল, নতুন ফিচার এবং উন্নতকরণগুলোর মধ্যে রয়েছে:

ফায়ারবেস দ্বারা চালিত অ্যান্ড্রয়েড ডিভাইস স্ট্রিমিং

ডিভাইস-স্ট্রিমিং.webp

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

অ্যান্ড্রয়েড স্টুডিও-র জন্য মাসিক রিলিজের মাধ্যমে উন্নয়নের গতি বাড়ানো হচ্ছে — আগের চেয়ে ২ গুণ বেশি ঘন ঘন রিলিজ করা হচ্ছে

accelarating-releases.webp

আপনাদের কাছে নতুন ফিচার এবং গুরুত্বপূর্ণ বাগ ফিক্স দ্রুত পৌঁছে দেওয়ার জন্য অ্যান্ড্রয়েড স্টুডিও এখন থেকে মাসিক স্টেবল রিলিজ পদ্ধতি চালু করছে। অ্যান্ড্রয়েড স্টুডিও আইডিই মাসিক ভিত্তিতে আপডেট হলেও, ইন্টেলিজ প্ল্যাটফর্মের নতুন সংস্করণ প্রতি কয়েক মাস অন্তর প্রকাশ করা হবে এবং এর মধ্যবর্তী স্টেবল রিলিজগুলোতে ফিচার ড্রপস থাকবে। অ্যান্ড্রয়েড এমুলেটর এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন প্রতি দুই মাস অন্তর আলাদাভাবে আপডেট হতে থাকবে। টেস্টিং পরিকাঠামোতে দীর্ঘমেয়াদী বিনিয়োগের মাধ্যমে এই ত্বরান্বিত রিলিজ সময়সূচী সম্ভব হয়েছে।

Jetpack Compose-এর আগস্ট '২৫ সংস্করণে নতুন কী আছে 🚀

jetpack-compose.webp

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

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

মিডিয়া৩ ১.৮.০ — নতুন কী আছে? 🚀

মিডিয়া৩.ওয়েবপি

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

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

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

প্রবন্ধ 📚

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

weareplay.webp

#WeArePlay উদ্যোগটি এমন সব অ্যান্ড্রয়েড অ্যাপ ও গেম তুলে ধরে, যেগুলো পরিবেশগত প্রতিবন্ধকতা মোকাবেলা করে । মায়লা, ফ্ল্যাভিয়া, আন্দ্রেয়া এবং আরিয়ানের তৈরি ‘বোরা — ইগুয়াসু ন্যাশনাল পার্ক’ গেমটি পার্ক পরিদর্শনের সময় প্রকৃতি শিক্ষার জন্য গেমের মতো এবং সহজলভ্য ইন্টারেক্টিভ অভিজ্ঞতা প্রদান করে। লুই এবং জাস্টিনের অ্যাপ ‘সাইবারট্র্যাকার’ নিরক্ষর আদিবাসী ট্র্যাকারদের একটি আইকন-ভিত্তিক ইন্টারফেসের মাধ্যমে জীববৈচিত্র্যের তথ্য রেকর্ড করতে সাহায্য করে, যা সংরক্ষণ প্রচেষ্টাকে সমর্থন করে। সবশেষে, ভারতী এবং সৌরভের সহ-প্রতিষ্ঠিত ‘আর্থফাইভআর’ পরিবেশগত শিক্ষা প্রদান করে এবং সবুজ অর্থনীতির জন্য দক্ষতা বিকাশে ব্যবহারকারীদের ইন্টার্নশিপ ও প্রকল্পের সাথে যুক্ত করে।

HDR কী? 🌟

hdr.webp

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

রঙ বোঝার তিনটি উপাদান রয়েছে:

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

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

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

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

ভিডিও 📹

আকৃতি পরিবর্তন সহ উন্নত শেয়ার্ড এলিমেন্ট | জেটপ্যাক কম্পোজ টিপস

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

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

অ্যান্ড্রয়েড স্টুডিওতে মাল্টিমোডাল জেমিনি: এআই-চালিত UI ডেভেলপমেন্ট

অ্যান্ড্রয়েড স্টুডিও-এর জেমিনি এআই ডিজাইন থেকে কোড তৈরি করে (ইমেজ-টু-কোড সহ), সিন্থেটিক ডেটা দিয়ে কম্পোজ প্রিভিউ তৈরি করে এবং সরাসরি কমান্ডের মাধ্যমে বিদ্যমান UI পরিমার্জন করে UI ডেভেলপমেন্টে সহায়তা করে।

একটি রানটাইম-সক্ষম SDK ব্যবহার করুন

অ্যান্ড্রয়েড ১৪-এ এসডিকে রানটাইম (SDK Runtime) চালু করা হয়েছে, যা একটি নতুন প্রযুক্তি। এটি গোপনীয়তা ও নিরাপত্তা বাড়ানোর জন্য থার্ড-পার্টি এসডিকে-গুলোকে একটি সুরক্ষিত ও পৃথক প্রসেস স্যান্ডবক্সে আলাদা করে রাখে।

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

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

WearOS Material 3-এ আকৃতি পরিবর্তন | Jetpack Compose টিপস

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

AndroidX রিলিজ 🚀

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

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

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

কম্পোজ ডেভেলপারদের জন্য প্রধান পরিবর্তনসমূহ:

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

নতুন গ্রন্থাগার ও পরিষেবা:

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

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

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

অ্যান্ড্রয়েড ডেভেলপারদের নেপথ্যে

অ্যান্ড্রয়েড ডেভেলপারস ব্যাকস্টেজ আরও একটি পর্ব নিয়ে ফিরে এসেছে।

কম্পোজে অটোফিল

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

তাহলে… 👋

এই সংস্করণে এটুকুই, সাথে অ্যান্ড্রয়েড ১৬ কিউপিআর২ বিটা ১- এর কভারেজ, অ্যান্ড্রয়েড স্টুডিও নারহাল ফিচার ড্রপ , জেটপ্যাক কম্পোজ ১.৯ , মিডিয়া ৩ ১.৮ , কম্পোজে শেপ মর্ফিং ও অটোফিল এবং আরও অনেক কিছু।

অ্যান্ড্রয়েড ডেভেলপার জগৎ থেকে আপনার পরবর্তী আপডেটের জন্য শীঘ্রই আবার দেখুন!

লিখেছেন:

পড়তে থাকুন