جامعه

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

۹ دقیقه مطالعه
Daniel Galpin
وکیل توسعه‌دهنده

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

برای پوشش اخبار مربوط به نسخه بتا ۱ اندروید ۱۶ QPR2 ، به‌روزرسانی ویژگی‌های اندروید استودیو Narwhal ، جت‌پک کامپوز ۱.۹ ، مدیا ۳ ۱.۸ ، تغییر شکل شکل و تکمیل خودکار در کامپوز و موارد دیگر، ادامه مطلب را بخوانید.

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

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

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

نسخه بتای اول اندروید ۱۶ QPR2 از راه رسید ✨

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

نمودار انتشار SDK.webp

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

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

VERSION_CODES_FULL نمی‌توان در ویژگی‌های manifest مربوط uses-sdk استفاده کرد.

در اینجا به برخی از به‌روزرسانی‌های کلیدی نسخه بتا ۱ بازی QPR2 اشاره می‌کنیم.

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

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

رسانه و صدا:

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

اتصال:

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

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

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

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

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

شما می‌توانید هر دستگاه پیکسل پشتیبانی‌شده را برای دریافت به‌روزرسانی‌های بتا به‌صورت بی‌سیم ثبت‌نام کنید یا از ایمیج‌های سیستم ۶۴ بیتی با شبیه‌ساز اندروید در اندروید استودیو استفاده کنید. پایداری پلتفرم برای اکتبر ۲۰۲۵ هدف‌گذاری شده است.

افت ویژگی Narwhal در اندروید استودیو پایدار شد — استفاده از حالت عامل (Agent Mode) را شروع کنید 🐳

ناروال.webp

نسخه پایدار اندروید استودیو Narwhal Feature Drop منتشر شد و ویژگی‌ها و بهبودهای جدید آن عبارتند از:

  • Gemini در اندروید استودیو: حالت عامل برای وظایف کدنویسی چند مرحله‌ای در دسترس است
  • قوانین کتابخانه Prompt، خروجی هوش مصنوعی Gemini را متناسب با نیازهای پروژه شما تنظیم می‌کند.
  • رابط کاربری Transform با Gemini از رابط کاربری زبان طبیعی برای تکرار در Compose UI استفاده می‌کند.
  • پشتیبانی همه‌جانبه از توسعه با شبیه‌ساز اندروید XR تعبیه‌شده، یک قالب جدید XR و Layout Inspector تعبیه‌شده برای XR
  • دسترسی گسترده‌تر به دستگاه از طریق آزمایشگاه‌های دستگاه شریک اندروید در Android Device Streaming.
  • پیش‌نمایش‌های بهتر برای نوشتن با ناوبری کد بهبود یافته و انتخابگر پیش‌نمایش جدید برای نوشتن
  • کامپایلر K2 Kotlin به طور پیش‌فرض برای عملکرد سریع‌تر ساخت فعال است
  • ابزارهای اندازه صفحه ۱۶ کیلوبایتی به همراه هشدارهای پرز، تجزیه و تحلیل و یک شبیه‌ساز برای کمک به شما در آماده شدن برای دستگاه‌های آینده با اندازه صفحه ۱۶ کیلوبایتی.

پخش جریانی دستگاه اندروید، ارائه شده توسط فایربیس

دستگاه-جریان.webp

سرویس Android Device Streaming که توسط Firebase ارائه می‌شود، پشتیبانی پایداری را برای Android Partner Device Labs ارائه کرده است که به شما امکان می‌دهد از راه دور به دستگاه‌های فیزیکی اندروید که توسط شرکای OEM از جمله سامسونگ، شیائومی، اوپو، وان‌پلاس و ویوو میزبانی می‌شوند، متصل شوید.

تسریع توسعه با انتشار ماهانه برای اندروید استودیو - انتشار دو برابر بیشتر از قبل

انتشارهای شتاب‌دهنده.webp

اندروید استودیو در حال گذار به یک روند انتشار ماهانه پایدار است تا سرعت دریافت ویژگی‌های جدید و رفع اشکالات مهم را افزایش دهد. در حالی که محیط توسعه یکپارچه اندروید استودیو ماهانه به‌روزرسانی می‌شود، نسخه‌های جدید پلتفرم IntelliJ هر چند ماه یکبار معرفی می‌شوند و Feature Drops جای انتشار نسخه‌های پایدار موقت را پر می‌کند. شبیه‌ساز اندروید و افزونه اندروید Gradle هر دو ماه یکبار به طور جداگانه به‌روزرسانی می‌شوند. این برنامه انتشار سریع با سرمایه‌گذاری‌های بلندمدت در زیرساخت‌های تست پشتیبانی می‌شود.

چه چیزهایی در نسخه آگوست 25 جت‌پک کامپوز جدید است 🚀

jetpack-compose.webp

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

بلوک‌های سازنده LazyLayout اکنون پایدار هستند و می‌توانید یک LazyLayoutCacheWindow برای بهبود عملکرد Lazy List و Grid با پیش‌واکشی بهبود یافته تعریف کنید. Scrollable2D امکان پیمایش دوبعدی، از جمله پیمایش پرتابی و تودرتو، را با پیشرفت‌های مختلف برای تعامل پیمایش و پیمایش تودرتو با Views فراهم می‌کند. یک API اختیاری ( Composer.setDiagnosticStackTraceEnabled ) جزئیات غنی‌تری از محل خرابی را در ردیابی‌های پشته ارائه می‌دهد که فقط برای ساخت‌های اشکال‌زدایی توصیه می‌شود. حاشیه‌نویسی‌های جدید @RememberInComposition و @FrequentlyChangingValue ، همراه با بررسی‌های Lint مرتبط، در یک کتابخانه جدید runtime-annotation در دسترس هستند. منوهای زمینه را می‌توان با استفاده از Modifier.appendTextContextMenuComponents و Modifier.filterTextContextMenuComponents سفارشی کرد. اکنون به افزونه Android Gradle (AGP) / Lint نسخه 8.8.2 یا بالاتر نیاز است.

مدیا۳ نسخه ۱.۸.۰ — چه چیزهایی جدید است؟ 🚀

media3.webp

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

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

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

مقالات 📚

#ما_بازی_میکنیم: با افرادی که برای جهانی پایدارتر کدنویسی می‌کنند، آشنا شوید

weareplay.webp

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

اچ‌دی‌آر چیست؟ 🌟

hdr.webp

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

درک رنگ شامل سه جزء است:

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

تصورات غلط رایج در مورد HDR:

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

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

ویدیوها 📹

عناصر اشتراکی پیشرفته با تغییر شکل | نکات نوشتن با Jetpack

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

تغییر شکل (Shape morphing) یک ویژگی کلیدی جدید است که با بهره‌گیری از کتابخانه شکل گرافیکی AndroidX متریال ۳ (Material 3) حاصل می‌شود. این شامل ایجاد یک شیء Morph با شکل‌های شروع/پایان تعریف‌شده، هدایت پیشرفت آن با animateFloat (از AnimatedVisibilityScope ) و اعمال آن به عنوان یک کلیپ از طریق یک OverlayClip سفارشی است. جلوه‌های آشکار (Reveal effects) از skipToLookaheadSize و skipToLookaheadPosition استفاده می‌کنند. همه این انیمیشن‌های پیشرفته با حرکات پیش‌بینی‌کننده بازگشت (predictive back gestures) نیز سازگار هستند.

Gemini چندوجهی در اندروید استودیو: توسعه رابط کاربری مبتنی بر هوش مصنوعی

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

استفاده از یک SDK با قابلیت اجرا (Runtime-Enabled SDK)

اندروید ۱۴، SDK Runtime را معرفی می‌کند، یک فناوری جدید که SDKهای شخص ثالث را در یک محیط امن و جداگانه برای افزایش حریم خصوصی و امنیت ایزوله می‌کند.

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

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

تغییر شکل WearOS Material 3 | نکات نوشتن Jetpack

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

نسخه‌های اندروید ایکس 🚀

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

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

  • minSdk پیش‌فرض به API 23 ارتقا یافته است: برای androidx.compose animation ، foundation ، material ، runtime و ui ، حداقل نسخه پیش‌فرض SDK از API 21 به API 23 منتقل شده است. این بدان معناست که اگر از آخرین نسخه‌های آلفای این کتابخانه‌های Compose استفاده می‌کنید، برنامه شما به طور ضمنی به اندروید 6.0 (Marshmallow) یا بالاتر نیاز خواهد داشت.

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

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

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

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

سایر تغییرات قابل توجه:

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

پشت صحنه توسعه دهندگان اندروید

برنامه‌ی توسعه‌دهندگان اندروید با یک قسمت دیگر برگشته است.

تکمیل خودکار در نوشتن

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

حالا دیگه… 👋

همین برای این نسخه کافی است، با پوشش نسخه بتا ۱ اندروید ۱۶ QPR2 ، به‌روزرسانی ویژگی‌های اندروید استودیو Narwhal ، جت‌پک کامپوز ۱.۹ ، مدیا ۳ ۱.۸ ، تغییر شکل شکل و تکمیل خودکار در کامپوز و موارد دیگر.

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

نوشته شده توسط:

ادامه مطلب