انجمن

اکنون در Android شماره ۱۲۱

مدت‌زمان مطالعه: ۹ دقیقه
مشاهده نمایه Daniel Galpin
Daniel Galpin مدافع توسعه‌دهندگان

به «اکنون در Android» خوش آمدید، راهنمای همیشگی شما برای چیزهای جدید و قابل‌توجه در دنیای توسعه Android.

برای پوشش Android 16 QPR2 beta 1، عرضه ویژگی Android Studio Narwhal، Jetpack Compose 1.9، Media 3 1.8، Shape Morphing و Autofill در Compose، و موارد دیگر، ادامه مطلب را بخوانید.

می‌توانید خلاصه ویدیو را تماشا کنید:

 

 

و همچنین یک پادکست داریم.

اما این پست حاوی عمیق‌ترین اطلاعات است، پس به خواندن ادامه دهید!

‫Android 16 QPR2 Beta 1 از راه رسید ✨

اولین نسخه بتای Android 16 QPR2 اکنون دردسترس است، اولین نسخه Android با نسخه جزئی کیت توسعه نرم‌افزار Android. نسخه‌های فرعی کیت توسعه نرم‌افزار می‌توانند شامل میاناهای برنامه‌سازی کاربردی جدیدی باشند که ویژگی‌های پلاتفرم را گسترش می‌دهند اما نمی‌توانند تغییرات رفتاری targetSdkVersion را معرفی کنند، که این امر میزان نیاز به آزمایش برنامه‌هایتان دربرابر آن را به‌حداقل می‌رساند.

sdk-release-graph.webp

می‌توانید میاناهای برنامه‌سازی کاربردی جدید را با بررسی SDK_INT_FULL دربرابر شمارش VERSION_CODES_FULL فراخوانی کنید:

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

نمی‌توان از VERSION_CODES_FULL در مشخصه‌های مانیفست uses-sdk استفاده کرد.

در اینجا چند به‌روزرسانی کلیدی از QPR2 Beta 1 ارائه شده است.

میانای کاربر، تجربه سیستم، و دسترس‌پذیری:

  • گزینه زمینه تیره گسترش‌یافته به‌طور هوشمند برنامه‌های روشن را برای کاربرانی که ظاهر تیره را ترجیح می‌دهند معکوس می‌کند.
  • اگر برنامه‌تان لایه تک‌رنگ ارائه ندهد، سیستم می‌تواند نمادهای برنامه با زمینه خودکار تولید کند.
  • جلسه‌های انتخابگر تعاملی بااستفاده از ChooserManager و ChooserSession، میانای کاربر برنامه شما را درحین باز بودن برگه هم‌رسانی فعال نگه می‌دارند.
  • «میانای برنامه‌سازی کاربردی انتقال داده» جدید امکان انتقال مطمئن‌تر و ایمن‌تر داده‌ها را بین Android و iOS فراهم می‌کند و برای این کار لازم است XML قوانین استخراج داده‌های برنامه‌تان و پیاده‌سازی BackupAgent به‌روز شود.
  • بسته android.graphics.pdf گسترش یافته است تا از حاشیه‌نویسی و ویرایش اسناد PDF ازطریق PdfRenderer.Page پشتیبانی کند.
  • مقادیر ViewConfiguration اکنون برای دستگاه‌های مجازی تکی سفارشی‌سازی شده‌اند؛ برای سناریوهای چندنمایشگری به ViewConfiguration.get(context) منتقل شوید.
  • با مشخص کردن VibrationAttributes با View.performHapticFeedback(HapticFeedbackRequest)، کنترل بازخورد لمسی دقیق‌تری به‌دست می‌آورید
  • اکنون می‌توان کاشی‌های «تنظیمات فوری» را به دسته‌های ازپیش تعریف‌شده در فایل AndroidManifest.xml اختصاص داد.

رسانه و صدا:

  • رمزگشایی نرم‌افزاری برای «مدل و قالب‌های صدای فراگیر» (IAMF)، یک قالب صدای فضایی باز.
  • «اشتراک صوتی شخصی» برای دستگاه‌های دارای «صدای کم‌مصرف بلوتوث» مستقیماً در «تعویض‌کننده خروجی» سیستم ادغام شده است.
  • کاربران می‌توانند روشنایی HDR را بااستفاده از لغزنده روشنایی HDR/SDR کنترل کنند
  • موارد اضافی «انتخاب‌گر عکس» می‌تواند آلبوم‌ها یا پرسمان‌های جستجوی خاصی را برجسته کند.

اتصال‌پذیری:

  • بهبودهای «مدیریت دستگاه همپا» (CDM) به شما امکان می‌دهد نمادهای سفارشی دستگاه را ارائه دهید، به بازخوانی EVENT_ASSOCIATION_REMOVED گوش دهید، و درستی‌سنجی بین‌برنامه‌ای را بااستفاده از DeviceId فعال کنید.
  • به‌روزرسانی‌های بلوتوث شامل پشتیبانی از اسکن غیرفعال برای BluetoothLeScanner (ScanSettings.SCAN_TYPE_PASSIVE)، دلایل ازدست رفتن پیوند (BluetoothDevice.EXTRA_BOND_LOSS_REASON)، و بازیابی مستقیم UUIDهای سرویس (BluetoothDevice.EXTRA_UUID_LE) می‌شود.
  • به‌روزرسانی‌های Wi-Fi RTT Ranging (RttStationRangingParams) از فاصله‌یابی درمقابل ایستگاه‌ها پشتیبانی می‌کند.
  • PhoneNumberManager جدیدی برای تجزیه و اعتبارسنجی شماره تلفن‌ها از سرصفحه‌های IMS P-Associated-URI دردسترس است.
  • بهبودهای «حریم خصوصی شبکه MediaRouter» امکان ارسال محتوا ازطریق رسانه‌های جدیدی مثل بلوتوث و فراپهن‌باند را فراهم می‌کند؛ باید از «تعویض‌کننده خروجی» سیستم استفاده کنید یا برای انتخاب‌گرهای درون‌برنامه سفارشی، اجازه‌های NEARBY_DEVICES را درخواست کنید.

حریم خصوصی و امنیت:

  • وضعیت امنیتی جدیدی در سطح سیستم، «قفل کردن ایمن دستگاه»، دستگاه‌ها را قفل می‌کند و برای باز کردن قفل به اصالت‌سنجی اصلی نیاز دارد.
  • کلید روشن/خاموشی برای «محافظت دربرابر سرقت تلفن» اضافه شده است که کاربر می‌تواند آن را ببیند و ازطریق آن «قفل اصالت‌سنجی ناموفق» را فعال/غیرفعال کند.

بهره‌وری توسعه‌دهنده:

  • میاناهای برنامه‌سازی کاربردی جدید AppWidgetManager به شما امکان می‌دهند سنجه‌های تعامل با ابزاره را جستجو کنید.
  • برنامه‌های قابل‌اشکال‌زدایی نصب‌شده ازطریق ADB اکنون هشدارهای زودهنگام برای سازگاری با اندازه صفحه ۱۶ کیلوبایتی دریافت خواهند کرد.
  • ProfilingManager پشتیبانی از راه‌اندازهای نمایه‌سازی جدید آغازشده توسط سیستم و requestRunningSystemTrace را برای ضبط ردگیری‌های پس‌زمینه اضافه می‌کند.
  • کلید «ثبت گزارش چاپ با جزئیات» در «گزینه‌های توسعه‌دهندگان» اطلاعات اشکال‌زدایی بیشتری برای «چارچوب چاپ Android» ارائه می‌دهد.
  • آزمایش قوی‌تر برای تجربه‌های رایانه و چندنمایشگری با میاناهای برنامه‌سازی کاربردی جدید UiAutomation برای نماگرفت‌ها در نمایشگرهای غیرپیش‌فرض و AccessibilityWindowInfo.refresh عمومی فعال شده است.
  • پشتیبانی میانای برنامه‌سازی کاربردی برای کتابخانه جدید androidx.core:core-backported-fixes اضافه شده است.
  • اکنون از برنامه‌های GUI در «پایانه Linux» پشتیبانی می‌شود
  • WindowInspector.addGlobalWindowViewsListener از اعلان‌های تغییر نمای ریشه هم‌زمان پشتیبانی می‌کند.

می‌توانید هر دستگاه Pixel پشتیبانی‌شده‌ای را برای دریافت به‌روزرسانی‌های بتا ازطریق بی‌سیم ثبت‌نام کنید یا از تصاویر سیستم ۶۴ بیتی با «شبیه‌ساز Android» در Android Studio استفاده کنید. «پایداری پلاتفرم» برای اکتبر ۲۰۲۵ هدف‌گذاری شده است.

«نوویژگی Narwhal استودیو Android» پایدار است — استفاده از «حالت عامل» را شروع کنید 🐳

narwhal.webp

«نوویژگی Narwhal استودیو Android» اکنون پایدار است، ویژگی‌های جدید و بهبودها عبارتند از:

  • Gemini در «استودیو Android»: «حالت عامل» برای تکالیف کدنویسی چندمرحله‌ای دردسترس است
  • کتابخانه پیام‌واره قوانین برونداد هوش مصنوعی Gemini را برای نیازهای پروژه‌تان سفارشی‌سازی کنید.
  • Transform UI with Gemini از میانای کاربر زبان طبیعی برای تکرار در Compose UI استفاده می‌کند.
  • پشتیبانی از توسعه فراگیر با شبیه‌ساز Android واقعیت گسترده جاسازی‌شده، الگوی جدید واقعیت گسترده، و «بازرس چیدمان» جاسازی‌شده برای واقعیت گسترده
  • دسترسی گسترده به دستگاه ازطریق Android Partner Device Labs در «جاری‌سازی دستگاه Android».
  • بهبود پیش‌نمایش‌های Compose با پیمایش کد بهبودیافته و انتخابگر جدید پیش‌نمایش Compose
  • کامپایلر K2 Kotlin به‌طور پیش‌فرض برای عملکرد ساخت سریع‌تر فعال است
  • ابزار اندازه صفحه ۱۶ کیلوبایتی با هشدارهای lint، تجزیه‌وتحلیل، و شبیه‌ساز برای کمک به شما در آماده شدن برای دستگاه‌های آینده با اندازه صفحه ۱۶ کیلوبایتی.

جاری‌سازی «دستگاه Android»، با پشتیبانی Firebase

device-streaming.webp

«جاری‌سازی دستگاه Android» که Firebase آن را ارائه می‌دهد، پشتیبانی پایداری را برای «آزمایشگاه‌های دستگاه شریک Android» معرفی کرده است که به شما امکان می‌دهد از راه دور به دستگاه‌های Android فیزیکی که شرکای OEM (ازجمله Samsung،‏ Xiaomi،‏ OPPO،‏ OnePlus، و vivo) میزبان آن‌ها هستند متصل شوید.

تسریع توسعه با انتشار ماهانه برای Android Studio — انتشار ۲ برابر بیشتر از قبل

accelarating-releases.webp

Android Studio درحال انتقال به آهنگ انتشار پایدار ماهانه است تا ویژگی‌های جدید و رفع اشکالات مهم را سریع‌تر به شما ارائه دهد. درحالی‌که محیط توسعه یکپارچه «استودیو Android» به‌صورت ماهانه به‌روز می‌شود، نسخه‌های جدید پلاتفرم IntelliJ هر چند ماه یک‌بار معرفی می‌شوند و «نوویژگی‌ها» نسخه‌های پایدار موقت را پر می‌کنند. «شبیه‌ساز Android» و «افزایه Android Gradle» همچنان هر دو ماه یک‌بار به‌طور جداگانه به‌روزرسانی خواهند شد. این برنامه زمانی انتشار تسریع‌شده با سرمایه‌گذاری‌های بلندمدت در زیرساخت آزمایشی پشتیبانی می‌شود.

تازه‌های نسخه پخش اوت ۲۰۲۵ از Jetpack Compose 🚀

jetpack-compose.webp

‫Jetpack Compose نسخه اوت ۲۰۲۵ (نسخه ۱.۹) اکنون پایدار است. این نسخه Modifier.dropShadow و Modifier.innerShadow را برای پردازش جلوه‌های سایه جعبه معرفی می‌کند. اصلاح‌کننده‌های جدید onVisibilityChanged و onFirstVisible به شما امکان می‌دهند نمایان بودن عنصر را برای به‌روزرسانی‌های میانای کاربری یا ثبت ظهور ردیابی کنید. می‌توانید بااستفاده از TextFieldBuffer.addStyle برای تبدیل نوشتار، سبک غنی را در OutputTransformation اعمال کنید.

بلوک‌های ساختمانی LazyLayout اکنون پایدار هستند و می‌توانید LazyLayoutCacheWindow را برای بهبود عملکرد «فهرست تنبل» و «شبکه» با واکشی پیشاپیش بهبودیافته تعریف کنید. Scrollable2D پیمایش دوبعدی، ازجمله پیمایش سریع و پیمایش تودرتو، را با بهبودهای مختلف برای تعامل‌پذیری پیمایش و پیمایش تودرتو با «نماها» فعال می‌کند. یک API موافقت‌کردنی (Composer.setDiagnosticStackTraceEnabled) جزئیات غنی‌تری از مکان خرابی در ردیابی‌های پشته‌ای ارائه می‌دهد که فقط برای ساخت‌های اشکال‌زدایی توصیه می‌شود. حاشیه‌نویسی‌های جدید @RememberInComposition و @FrequentlyChangingValue، به‌همراه بررسی‌های Lint مرتبط، در کتابخانه حاشیه‌نویسی زمان اجرا جدیدی دردسترس است. منوهای بافت را می‌توان بااستفاده از Modifier.appendTextContextMenuComponents و Modifier.filterTextContextMenuComponents سفارشی‌سازی کرد. اکنون «افزایه Android Gradle»‏ (AGP) / نسخه Lint‏ ۸.۸.۲ یا بالاتر الزامی است.

Media3 1.8.0 — تازه‌ها؟ 🚀

media3.webp

‫Media3 نسخه ۱.۸.۰ اکنون دردسترس است و چندین ویژگی و بهبود جدید را معرفی می‌کند. ExoPlayer حالت پیمایش روی خط زمان را برای جستجوهای مکرر و کاربرمحور به‌دست می‌آورد که می‌توانید آن را ازطریق ExoPlayer.setScrubbingModeEnabled فعال کنید. HlsInterstitialsAdsLoader اکنون از جاری‌سازی‌های زنده برای درج آگهی با راهنمایی سرور پشتیبانی می‌کند.

MetadataRetriever به‌روز شده است تا به شما امکان دهد مدت زمان فایل رسانه‌ای را بدون بازپخش بازیابی کنید. برای Transformer، این نسخه عملیات برش سریع‌تر را بااستفاده از فهرست‌های ویرایش MP4 با experimentalSetMp4EditListTrimEnabled و بهینه‌سازی‌های رمزگذار مختص مجموعه تراشه ازطریق CodecDbLite معرفی می‌کند که با فراخوانی setEnableCodecDbLite در DefaultEncoderFactory.Builder فعال می‌شود.

به‌روزرسانی‌های دیگر شامل پشتیبانی از بارگیری جزئی در Downloader با PreCacheHelper، مسیریابی خودکار صدای واقعیت گسترده در ExoPlayer، و تعاملات MediaCodec کارآمدتر است. اکنون ماژول MediaSession به‌طور پیش‌فرض اعلان‌ها را برای مدت طولانی‌تری نمایان نگه می‌دارد و برنامه نمایشی جلسه رسانه عملکرد ازسرگیری بازپخش را نمایش می‌دهد. برنامه نمایشی جدید Composition که با Kotlin و Compose ساخته شده است، ویرایش پیشرفته ویدیو با چند دارایی را نشان می‌دهد.

مقاله‌ها 📚

‫WeArePlay#: با افرادی که برای دنیایی پایدارتر کدنویسی می‌کنند آشنا شوید

weareplay.webp

طرح WeArePlay# برنامه‌ها و بازی‌های Android را که به چالش‌های زیست‌محیطی می‌پردازند برجسته می‌کند. بازی BoRa — Iguaçu National Park که توسط مایلا، فلاویا، آندریا، و آریان توسعه یافته است، تجربه‌های تعاملی بازی‌سازی‌شده و دردسترسی را برای آموزش طبیعت درطول بازدید از پارک ارائه می‌دهد. برنامه لوئیس و جاستین، CyberTracker، به ردیاب‌های بومی بی‌سواد اجازه می‌دهد تا داده‌های تنوع زیستی را ازطریق یک رابط مبتنی بر نماد ثبت کنند و از تلاش‌های حفاظتی حمایت کنند. درنهایت، Earth5R که توسط بهاراتی و سوراب تأسیس شده است، آموزش‌های زیست‌محیطی ارائه می‌دهد و کاربران را با دوره‌های کارآموزی و پروژه‌هایی برای توسعه مهارت‌های اقتصاد سبز مرتبط می‌کند.

HDR چیست؟ 🌟

hdr.webp

دامنه پویای بالا (HDR) به توسعه‌دهندگان Android امکان می‌دهد تا اوج روشنایی را فراتر از «دامنه پویای استاندارد» (SDR) افزایش دهند و وفاداری بصری بهبودیافته‌ای ارائه دهند. Android از HDR برای ویدیو و تصویر پشتیبانی می‌کند، ازجمله فناوری‌هایی مثل UltraHDR برای سازگاری با نسخه قدیمی.

درک رنگ شامل سه مؤلفه است:

  • عمق بیت: دقت نمایش رنگ را تعریف می‌کند، به‌طوری‌که عمق بالاتر انتقال‌های روان‌تری را ارائه می‌دهد.
  • تابع انتقال: مقادیر عددی پیکسل را به درخشندگی یا رنگ نمایش‌داده‌شده نگاشت می‌کند و برای پاسخ بصری غیرخطی انسان تنظیم می‌شود. نمونه‌های آن عبارت‌اند از sRGB،‏ HLG، و PQ.
  • طیف رنگ: نشان‌دهنده طیف رنگ‌هایی است که دستگاه می‌تواند بازتولید کند.

تصورات اشتباه رایج درباره HDR:

  • رنگ‌های زنده: گاموت‌های رنگی گسترده‌تر مانند Display P3 و Adobe RGB قبل‌از HDR دردسترس بودند و اکثر نمایشگرها هنوز به P3 محدود می‌شوند، حتی با محتوای BT.2020.
  • کنتراست بیشتر/جزئیات بهتر در رنگ سیاه: HDR ذاتاً رنگ‌های سیاه تیره‌تری نسبت‌به SDR در همان نمایشگر ارائه نمی‌دهد. نمایشگرهای OLED کنتراست بی‌نهایت را برای هر دو فراهم می‌کنند. درحالی‌که PQ بیت‌های بیشتری را به مناطق تاریک اختصاص می‌دهد، یک ویژگی HDR جهانی نیست.
  • عمق بیت بالاتر: اگرچه برخی‌از نمایه‌های ویدیو HDR (مثلاً HDR10) از جاری‌سازی‌های ۱۰ یا ۱۲ بیتی استفاده می‌کنند، این امر مختص آن نمایه‌ها است و ذاتی خود HDR نیست؛ عمق بیت بالاتر در سایر قالب‌های تصویربرداری نیز رایج است.

HDR در درجه اول به‌معنای اوج روشنایی بالاتر است. این «فضای اضافی HDR» به‌عنوان منطقه‌ای شناور نسبت‌به SDR تعریف می‌شود. درحالی‌که ویدیو HDR سنتی اغلب فضای آزاد ثابت را کدبندی می‌کند، نمایشگرهای مدرن از فضای آزاد پویا استفاده می‌کنند که می‌تواند منجر به تفاوت‌های کیفی شود. فناوری‌هایی مانند Ultra HDR و نقشه‌های بهره، جایگزین‌هایی با استفاده کارآمد از بیت ارائه می‌دهند. جعبه‌ابزار واسط کاربر Android از میانای برنامه‌سازی کاربردی extendedRangeBrightness برای ارائه تجربه‌های HDR استفاده می‌کند، حتی با RGBA_8888.

ویدیوها 📹

عناصر هم‌رسانی‌شده پیشرفته با دگردیسی شکل | نکته‌های Jetpack Compose

Jetpack Compose اکنون انتقال‌های پیشرفته عنصر هم‌رسانی‌شده، دگردیسی شکل پیچیده، و پویانمایی‌های آشکارسازی را فعال می‌کند. توسعه‌دهندگان می‌توانند SharedTransitionLayout را در بالاترین سطح برنامه پیکربندی کنند و از Modifier.sharedBounds برای پیوند دادن عناصر استفاده کنند.

دگردیسی شکل یک ویژگی کلیدی جدید است که با بهره‌گیری از کتابخانه شکل گرافیکی AndroidX در Material 3 به‌دست آمده است. این شامل ایجاد یک شیء Morph با شکل‌های شروع/پایان تعریف‌شده، هدایت پیشرفت آن با animateFloat (از AnimatedVisibilityScope)، و اعمال آن به‌عنوان یک کلیپ ازطریق یک OverlayClip سفارشی است. جلوه‌های آشکارسازی از skipToLookaheadSize و skipToLookaheadPosition استفاده می‌کنند. همه این پویانمایی‌های پیشرفته با اشاره‌های برگشت پیش‌گویانه نیز سازگار هستند.

Gemini چندحالتی در «استودیو Android»: توسعه میانای کاربر با بهره‌گیری از هوش مصنوعی

هوش مصنوعی Gemini در «استودیو Android» با تولید کد از طرح‌ها (ازجمله تصویر به کد)، ایجاد «پیش‌نمایش‌های Compose» با داده‌های مصنوعی، و پالایش واسط کاربر موجود ازطریق فرمان‌های مستقیم به توسعه واسط کاربر کمک می‌کند.

استفاده از کیت توسعه نرم‌افزار با زمان اجرای فعال‌شده

Android 14 زمان اجرای کیت توسعه نرم‌افزار را معرفی می‌کند، فناوری جدیدی که کیت‌های توسعه نرم‌افزار طرف سوم را در جعبه شنی فرایند امن و جداگانه‌ای ایزوله می‌کند تا حریم خصوصی و امنیت را بهبود بخشد.

برای توسعه‌دهندگان:

  • کیت‌های توسعه نرم‌افزار سازگار با زمان اجرا (RE) در این فرایند مجزا اجرا می‌شوند.
  • کیت‌های توسعه نرم‌افزار آگاه از زمان اجرا به‌عنوان واسطه در برنامه شما عمل می‌کنند.
  • کیت‌های توسعه نرم‌افزار RE را بااستفاده از SdkSandboxManagerCompat بار کنید و محدودیت‌ها (مثلاً پیش‌زمینه، بارگذاری تکی) را رعایت کنید.
  • ابزار Shim ارتباط بین‌فرایندی سطح پایین را ساده می‌کند.
  • رندر کردن میانای کاربر از کیت‌های توسعه نرم‌افزار RE بااستفاده از SandboxedSdkView و SandboxedUiAdapter.
  • فعالیت‌ها را از «زمان اجرای SDK» بااستفاده از SdkActivityLauncher راه‌اندازی کنید.

تغییر شکل WearOS Material 3 | نکاتی درباره Jetpack Compose

‫Wear OS Material 3 برای Compose اکنون دگرریختی شکل را ساده می‌کند. توسعه‌دهندگان می‌توانند به‌راحتی تغییرات شکل پویانمایی‌شده را با IconButtonDefaults.animatedShapes به دکمه‌های گرد اضافه کنند، گروه‌های دکمه‌ای ایجاد کنند که تغییرات عرض را بااستفاده از مؤلفه ButtonGroup و Modifier.animateWidth() پویانمایی می‌کنند، و فهرست‌های پیمایش عمودی (TransformingLazyColumn) بسازند که در آن موارد بااستفاده از TransformationSpec با نزدیک شدن به لبه‌های صفحه مقیاس‌بندی و دگرگون می‌شوند.

نسخه‌های AndroidX 🚀

در اینجا خلاصه‌ای از تغییرات AndroidX آورده شده است که تغییرات مربوط به توسعه‌دهندگان برنامه Android در اولویت قرار گرفته است:

تغییر کلی تأثیرگذار برای کتابخانه‌های Compose:

  • پیش‌فرض minSdk به میانای برنامه‌سازی کاربردی ۲۳ ارتقا یافته است: برای androidx.compose animation، foundation، material، runtime، و ui، حداقل نسخه پیش‌فرض کیت توسعه نرم‌افزار از میانای برنامه‌سازی کاربردی ۲۱ به میانای برنامه‌سازی کاربردی ۲۳ تغییر کرده است. این یعنی اگر از جدیدترین نسخه‌های آلفای این کتابخانه‌های Compose استفاده می‌کنید، برنامه‌تان به‌طور ضمنی به Android نسخه ۶.۰ (Marshmallow) یا بالاتر نیاز خواهد داشت.

تغییرات کلیدی برای توسعه‌دهندگان Compose:

  • میانای برنامه‌سازی کاربردی جدید retain (زمان اجرای Compose): یک میانای برنامه‌سازی کاربردی retain مشابه rememberSaveable معرفی می‌کند، اما برای مقادیری که بدون سریال‌سازی از سلسله‌مراتب ترکیب‌بندی خارج می‌شوند. طول عمر آن کوتاه‌تر از مقادیر ذخیره‌شده است و رفتاری مشابه ViewModel دارد، که روشی جدید برای مدیریت وضعیت برای composableهایی که ممکن است وارد ترکیب‌بندی شوند یا از آن خارج شوند ارائه می‌دهد.
  • انتقال‌های عنصر مشترک بهبودیافته (Compose Animation و UI): میاناهای برنامه‌سازی کاربردی جدید برای فعال/ غیرفعال کردن پویا عناصر مشترک، درنظر گرفتن انتقال‌های درحال انجام، و تنظیم حدود هدف جایگزین هنگام حذف عنصر مشترک. Modifier.skipToLookaheadPosition جدیدی نیز برای چیدمان‌های لنگراندازی دردسترس است.
  • بهبود واکشی پیشاپیش «ورق‌زن» (Compose Foundation): استراتژی واکشی پیشاپیش «ورق‌زن» اکنون به‌جای یک مورد از «پنجره حافظه نهان» (اندازه ۱ نمای هدف) استفاده می‌کند و واکشی پیشاپیش اولیه به‌طور پیش‌فرض فعال است. موارد همچنین برای پیمایش روان‌تر، مدت بیشتری نگه داشته می‌شوند.
  • مدیریت تمرکز پالایش‌شده برای موشواره/صفحه لمسی (Compose Foundation و UI): ComposeViews اکنون وقتی رویداد اشاره‌گر پایین (از موشواره یا صفحه لمسی) در خارج از گره متمرکزشده رخ می‌دهد، به‌طور خودکار تمرکز را پاک می‌کند. می‌توان از این مورد انصراف داد.
  • مستطیل‌های تمرکز قابل‌سفارشی‌سازی (Compose Foundation): FocusProperties اکنون به شما امکان می‌دهد به‌جای استفاده از چارگوش مرزی پیش‌فرض، یک ناحیه تمرکز سفارشی تعریف کنید، که این امر پیمایش تمرکز و منطق «نگه داشتن در دید» را در محفظه‌های پیمایشی بهبود می‌بخشد.
  • LifecycleOwner Composable (Lifecycle): یک composable جدید امکان ایجاد نمونه‌های LifecycleOwner با دامنه مشخص را مستقیماً در درخت واسط کاربر فراهم می‌کند. این به‌ویژه برای مدیریت مستقل چرخه‌های حیات مؤلفه و برای کتابخانه‌هایی مانند Navigation مفید است.
  • پشتیبانی از انواع Nullable در SavedStateHandle (Lifecycle و SavedState): ذخیره و بازیابی ویژگی‌های nullable با پشتیبانی بومی در SavedStateHandle و SavedStateRegistryOwner ساده شده است.
  • جدید LineHeightStyle.Mode.Tight (Compose Foundation و UI): حالت Tight جدید به اعمال ارتفاع خطوط کوچک‌تر کمک می‌کند، حتی اگر به معنای برش احتمالی نویسه‌های بلندتر باشد، و کنترل دقیق‌تری بر چیدمان نوشتار ارائه می‌دهد.
  • دوضرب زدن برای انتخاب کلمه (Compose Foundation): پشتیبانی از دوضرب زدن برای انتخاب کلمات در SelectionContainer و BasicTextField اضافه شد.
  • تغییرات رفتار WindowInsets (رابط کاربری Compose و Foundation):
    ◦ یک WindowInsets.cutoutPath API جدید برای دریافت مسیر برش نمایشگر.
    ◦ پرچم isWindowInsetsDefaultPassThroughEnabled برداشته شده است و WindowInsets به‌طور پیش‌فرض روی عدم مصرف تنظیم شده است تا «نماهای» فرزند بتوانند آن‌ها را دریافت کنند.
  • AndroidView requestRectangleOnScreen اصلاح (Compose Foundation): درخواست‌های ارائه‌شده توسط AndroidViews (مثلاً EditText تلاش برای ماندن در صفحه) اکنون به‌درستی به Compose منتقل می‌شوند.
  • پیمایش دوبعدی بهبودیافته با چرخ موشواره (Compose Foundation و Compose UI): پشتیبانی بهتر از رویدادهای پیمایش دوبعدی با چرخ موشواره، با میاناهای برنامه‌سازی کاربردی آزمایشی جدید و پرچمی برای کنترل رفتار.

کتابخانه‌ها و برنامه‌های کمکی جدید:

  • androidx.core:core-backported-fixes (کتابخانه جدید): این کتابخانه جدید به توسعه‌دهندگان امکان می‌دهد بررسی کنند که آیا رفع اشکال‌های مهم (برای مثال، مشکلات سطح پلاتفرم مانند اشکالات خاص دوربین) در دستگاه اعمال شده است یا نه. این کار امکان ارائه تجربه‌های کاربری مختلف را بسته به اینکه اشکال شناخته‌شده‌ای برطرف شده است یا نه فراهم می‌کند.

تغییرات قابل‌توجه دیگر:

  • فعالیت و ورودی بازی‌ها: پشتیبانی پیش‌فرض برای اندازه صفحه ۱۶ کیلوبایتی و پشتیبانی از موشواره برای GameActivity اضافه شد.
  • موقعیت‌یابی نکته‌ابزار Material3: ارائه‌دهندگان موقعیت بیشتر برای نکته‌ابزارها، که امکان قرار دادن در بالا، پایین، چپ، یا راست لنگر را فراهم می‌کند.
  • Material3 DatePicker اصلاحات: مطمئن می‌شود DatePicker از زبان خودش برای قالب‌بندی عدد پیروی می‌کند و مشکلات نمایش راست‌به‌چپ را برطرف می‌کند.
  • پشتیبانی از display_override در TWA (مرورگر): پشتیبانی از ویژگی مانیفست display_override TWA اضافه شد که کنترل بیشتری بر نمایش TWA فراهم می‌کند.
  • راه‌اندازی نشانی وب اولیه در برنامه خارجی (مرورگر): «قصدی» اضافه شد تا امکان راه‌اندازی نشانی وب اولیه «برنامه وب مطمئن» در مرورگر خارجی فراهم شود.

Android Developers Backstage

«پشت صحنه توسعه‌دهندگان Android» با قسمت دیگری برگشته است.

تکمیل خودکار در Compose

Jetpack Compose 1.8 قابلیت‌های «تکمیل خودکار» را به‌طور قابل‌توجهی بهبود می‌بخشد و از سیستم معنایی Compose بهره می‌برد. توسعه‌دهندگان اکنون می‌توانند به‌راحتی «تکمیل خودکار» سطح سیستم را با برچسب‌گذاری ساده فیلدهای نوشتاری با معناشناسی نوع محتوای مربوطه (مثلاً نام کاربری، گذرواژه) ادغام کنند، که نیاز به مدیریت دستی درخت «تکمیل خودکار» را ازبین می‌برد و عملکرد را بهبود می‌بخشد.

 

خب حالا… 👋

این نسخه با پوشش Android 16 QPR2 beta 1، نوویژگی Narwhal استودیو Android، Jetpack Compose 1.9، Media 3 1.8، Shape Morphing و Autofill in Compose، و موارد دیگر به پایان می‌رسد.

برای دریافت به‌روزرسانی بعدی از دنیای توسعه‌دهندگان Android، به‌زودی دوباره سر بزنید!

نویسنده:
ادامه خواندن