المنتدى

المدونة 121 من Now in Android

قراءة لمدة 9 دقائق
Daniel Galpin
مسؤول علاقات المطوّرين

مرحبًا بك في Now in Android، دليلك المستمر إلى كل ما هو جديد ومهم في عالم تطوير تطبيقات Android.

يمكنك الاطّلاع على تفاصيل الإصدار التجريبي الأول من تحديث QPR2 لنظام التشغيل Android 16 وتحديث Narwhal من "استوديو Android" الذي يتضمّن ميزات جديدة والإصدار 1.9 من Jetpack Compose والإصدار 1.8 من Media 3 وShape Morphing وAutofill in Compose وغير ذلك الكثير.

يمكنك مشاهدة ملخّص فيديو:

 

 

لدينا أيضًا بودكاست.

ولكن هذه المشاركة تتضمّن المعلومات الأكثر تفصيلاً، لذا ننصحك بمتابعة القراءة.

الإصدار التجريبي الأول من حزمة QPR2 لنظام التشغيل Android 16 متاح الآن ✨

يتوفّر الآن الإصدار التجريبي الأول من Android 16 QPR2، وهو إصدار Android الأوّل الذي يتضمّن إصدارًا ثانويًا من حزمة تطوير البرامج (SDK) لنظام التشغيل Android. يمكن أن تتضمّن إصدارات حزمة SDK الثانوية واجهات برمجة تطبيقات جديدة توسّع ميزات النظام الأساسي، ولكن لا يمكنها تقديم 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.

واجهة المستخدم وتجربة النظام وميزات تسهيل الاستخدام:

  • يتيح خيار "توسيع المظهر الداكن" عكس مظهر التطبيقات الفاتحة بذكاء للمستخدمين الذين يفضّلون المظهر الداكن.
  • يمكن للنظام إنشاء رموز تطبيقات مستوحاة من موضوع معيّن تلقائيًا إذا لم يوفّر تطبيقك طبقة أحادية اللون.
  • تحافظ جلسات أداة الاختيار التفاعلية على نشاط واجهة مستخدم تطبيقك أثناء فتح ورقة المشاركة، وذلك باستخدام ChooserManager وChooserSession.
  • تتيح واجهة برمجة التطبيقات الجديدة لنقل البيانات نقل البيانات بشكل أكثر موثوقية وأمانًا بين Android وiOS، ما يتطلّب إجراء تعديلات على ملف XML الخاص بقواعد استخراج البيانات في تطبيقك وتنفيذ BackupAgent.
  • تم توسيع حزمة android.graphics.pdf لتتيح إمكانية إضافة تعليقات توضيحية إلى مستندات PDF وتعديلها من خلال PdfRenderer.Page.
  • تم الآن تخصيص قيم ViewConfiguration للأجهزة الافتراضية الفردية، لذا يُرجى الانتقال إلى ViewConfiguration.get(context) لاستخدامها في سيناريوهات العرض المتعدد.
  • يمكنك التحكّم بشكل أدق في ردود الفعل اللمسية من خلال تحديد VibrationAttributes باستخدام View.performHapticFeedback(HapticFeedbackRequest)
  • يمكن الآن تعيين مربّعات "الإعدادات السريعة" لفئات محدَّدة مُسبقًا في ملف AndroidManifest.xml.

الوسائط والصوت:

  • إتاحة فك الترميز البرمجي لتنسيقات ونماذج الصوت الغامر (IAMF)، وهو تنسيق مفتوح للصوت المكاني
  • تم دمج ميزة "مشاركة الصوت الشخصي" لأجهزة Bluetooth LE Audio مباشرةً في "مبدّل الإخراج" بالنظام.
  • يمكن للمستخدمين التحكّم في سطوع المحتوى بتكنولوجيا HDR باستخدام شريط تمرير سطوع HDR/SDR
  • يمكن أن تبرز إضافات "أداة اختيار الصور" ألبومات أو طلبات بحث معيّنة.

الاتصال:

  • تتيح لك التحسينات على ميزة "إدارة الأجهزة المصاحبة" (CDM) توفير رموز أجهزة مخصّصة، والاستماع إلى معاودة الاتصال EVENT_ASSOCIATION_REMOVED، وتفعيل عملية التحقّق من التطبيقات المختلفة باستخدام DeviceId.
  • تشمل تحديثات البلوتوث إمكانية البحث غير النشط عن BluetoothLeScanner (ScanSettings.SCAN_TYPE_PASSIVE) وأسباب فقدان الربط (BluetoothDevice.EXTRA_BOND_LOSS_REASON) واسترداد المعرّفات الفريدة العالمية للخدمات مباشرةً (BluetoothDevice.EXTRA_UUID_LE).
  • تتيح تحديثات تحديد المدى باستخدام Wi-Fi RTT (RttStationRangingParams) تحديد المدى مقارنةً بالمحطات.
  • يتوفّر PhoneNumberManager جديد لتحليل أرقام الهواتف والتحقّق من صحتها من عناوين IMS P-Associated-URI.
  • تتيح تحسينات خصوصية شبكة MediaRouter إمكانية البث عبر وسائط جديدة، مثل البلوتوث وUWB. عليك استخدام أداة اختيار الإخراج في النظام أو طلب أذونات NEARBY_DEVICES لأدوات اختيار مخصّصة داخل التطبيق.

الخصوصية والأمان:

  • تتوفّر الآن حالة أمان جديدة على مستوى النظام، وهي "تأمين قفل الجهاز"، وتعمل على قفل الأجهزة وتتطلّب إجراء مصادقة أساسية لفتح القفل.
  • تمت إضافة زر تفعيل/إيقاف ميزة "القفل عند تعذّر المصادقة" في إعدادات "حماية الهاتف عند السرقة" الظاهرة للمستخدمين.

إنتاجية المطوّر:

  • تتيح لك واجهات برمجة التطبيقات الجديدة في AppWidgetManager طلب البحث عن مقاييس التفاعل مع التطبيقات المصغّرة.
  • ستتلقّى التطبيقات القابلة للتصحيح التي يتم تثبيتها من خلال "جسر تصحيح أخطاء Android" (ADB) الآن تحذيرات مبكرة بشأن التوافق مع حجم الصفحة البالغ 16 كيلوبايت.
  • تضيف ProfilingManager إمكانية استخدام مشغّلات جديدة لتسجيل بيانات الأداء يبدأها النظام، كما تضيف requestRunningSystemTrace لتسجيل عمليات التتبُّع في الخلفية.
  • يتوفّر خيار "تسجيل مفصّل للطباعة" في "خيارات المطوّرين" يقدّم معلومات إضافية لتصحيح الأخطاء في "إطار عمل الطباعة في Android".
  • يمكن إجراء اختبارات أكثر فعالية لتجارب الاستخدام على أجهزة الكمبيوتر والأجهزة التي تتضمّن شاشات متعددة من خلال واجهات برمجة التطبيقات الجديدة UiAutomation للقطات الشاشة على الشاشات غير التلقائية وAccessibilityWindowInfo.refresh العامة.
  • تمّت إضافة إمكانية استخدام واجهة برمجة التطبيقات مع مكتبة androidx.core:core-backported-fixes الجديدة.
  • أصبحت تطبيقات واجهة المستخدم الرسومية متوافقة الآن مع "Terminal لنظام التشغيل Linux"
  • يتوافق WindowInspector.addGlobalWindowViewsListener مع الإشعارات الفورية بشأن تغييرات العرض الجذر.

يمكنك تسجيل أي جهاز Pixel متوافق لتلقّي تحديثات الإصدار التجريبي عبر اتصال لاسلكي أو استخدام صور نظام 64 بت مع "محاكي Android" في "استوديو Android". من المقرّر إطلاق "إصدارات مستقرة من المنصّة" في أكتوبر 2025.

الإصدار الثابت من تحديث Narwhal من "استوديو Android" الذي يحتوي على ميزات جديدة: يمكنك الآن استخدام "وضع الوكيل" 🐳

narwhal.webp

أصبح الإصدار الأخير من ميزات استوديو Android Narwhal ثابتًا، وتشمل الميزات والتحسينات الجديدة ما يلي:

  • تتوفّر ميزة Gemini في استوديو Android: وضع الوكيل لمهام الترميز المتعدّدة المراحل
  • تتيح لك مكتبة الطلبات والقواعد تخصيص نتائج الذكاء الاصطناعي في Gemini لتلبية احتياجات مشروعك.
  • تستخدم ميزة تحويل واجهة المستخدم باستخدام Gemini واجهة مستخدم بلغة طبيعية لتكرار واجهة مستخدم Compose.
  • إتاحة أدوات تطوير تجارب غامرة من خلال محاكي Android XR المضمّن ونموذج XR جديد و"أداة فحص التنسيق" المضمّنة لتطبيقات XR
  • توسيع نطاق الوصول إلى الأجهزة من خلال مختبرات أجهزة شركاء Android في ميزة "بث أجهزة Android"
  • معاينات أفضل في Compose من خلال ميزة "التنقّل المحسّن في الرمز" وأداة اختيار معاينة Compose الجديدة
  • تفعيل برنامج K2 المجمّع للغة Kotlin تلقائيًا لتحسين أداء عملية الإنشاء
  • أدوات حجم الصفحة 16 كيلوبايت مع تحذيرات Lint والتحليل والمحاكي لمساعدتك في الاستعداد للأجهزة القادمة التي تستخدم حجم الصفحة 16 كيلوبايت

ميزة "بث التطبيقات على أجهزة Android" من Firebase

device-streaming.webp

أتاحت ميزة "بث أجهزة Android"، المستندة إلى Firebase، إمكانية استخدام "مختبرات أجهزة شركاء Android" بشكل ثابت، ما يتيح لك الاتصال عن بُعد بأجهزة Android فعلية يستضيفها شركاء من المصنّعين الأصليين للأجهزة، بما في ذلك Samsung وXiaomi وOPPO وOnePlus وvivo.

تسريع وتيرة التطوير من خلال إصدارات شهرية من "استوديو Android"، أي إصدارات أكثر بمقدار الضعف مقارنةً بالسابق

accelarating-releases.webp

ينتقل استوديو Android إلى وتيرة إصدار ثابتة شهرية لتسريع حصولك على الميزات الجديدة وإصلاح الأخطاء البالغة الأهمية. مع أنّ بيئة التطوير المتكاملة (IDE) في "استوديو Android" سيتم تحديثها شهريًا، سيتم طرح إصدارات جديدة من منصة IntelliJ كل بضعة أشهر، وستتضمّن تحديثات Feature Drops إصدارات ثابتة مؤقتة. سيستمر تحديث "محاكي Android" و"المكوّن الإضافي لنظام Gradle المتوافق مع Android" بشكل منفصل كل شهرَين. يستند الجدول الزمني المسرَّع لإصدار الفيديوهات هذا إلى استثمارات طويلة الأمد في البنية الأساسية للاختبار.

الميزات الجديدة في إصدار أغسطس 2025 من Jetpack Compose 🚀

jetpack-compose.webp

أصبح إصدار Jetpack Compose لشهر آب (أغسطس) 2025 (الإصدار 1.9) ثابتًا الآن. يقدّم هذا الإصدار Modifier.dropShadow وModifier.innerShadow لعرض تأثيرات ظل المربّع. يتيح لك المعدّلان الجديدان onVisibilityChanged وonFirstVisible تتبُّع مستوى ظهور العناصر لتعديلات واجهة المستخدم أو تسجيل مرّات الظهور. يمكنك تطبيق تنسيق غنيّ ضمن OutputTransformation باستخدام TextFieldBuffer.addStyle لتحويلات النصوص.

أصبحت الآن اللبنات الأساسية LazyLayout ثابتة، ويمكنك تحديد LazyLayoutCacheWindow لتحسين أداء Lazy List وGrid من خلال جلب البيانات المسبق المحسّن. تتيح Scrollable2D التمرير ثنائي الأبعاد، بما في ذلك التمرير السريع والتمرير المتداخل، مع تحسينات مختلفة للتمرير والتمرير المتداخل مع "طرق العرض". توفّر واجهة برمجة تطبيقات تتطلّب الموافقة (Composer.setDiagnosticStackTraceEnabled) تفاصيل أكثر دقة عن موقع الأعطال في عمليات تتبُّع تسلسل استدعاء الدوال البرمجية، ويُنصح باستخدامها فقط في إصدارات تصحيح الأخطاء. تتوفّر التعليقات التوضيحية الجديدة @RememberInComposition و@FrequentlyChangingValue، بالإضافة إلى عمليات فحص Lint المرتبطة بها، في مكتبة جديدة للتعليقات التوضيحية في وقت التشغيل. يمكن تخصيص قوائم السياق باستخدام Modifier.appendTextContextMenuComponents وModifier.filterTextContextMenuComponents. يجب الآن استخدام الإصدار 8.2.2 أو إصدار أحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP) أو أداة Lint.

‫Media3 1.8.0 — الميزات الجديدة 🚀

media3.webp

يتوفّر الآن الإصدار 1.8.0 من Media3، ويتضمّن العديد من الميزات والتحسينات الجديدة. تتضمّن ExoPlayer وضعًا للتقديم السريع والترجيع السريع لعمليات البحث المتكررة التي يجريها المستخدم، ويمكنك تفعيل هذا الوضع من خلال ExoPlayer.setScrubbingModeEnabled. تتيح HlsInterstitialsAdsLoader الآن إمكانية البث المباشر لإدراج الإعلانات الموجّهة من الخادم.

تم تعديل MetadataRetriever للسماح لك باسترداد مدة عناصر الوسائط بدون تشغيلها. بالنسبة إلى Transformer، يتيح الإصدار عمليات قص أسرع باستخدام قوائم تعديل MP4 مع experimentalSetMp4EditListTrimEnabled وتحسينات برنامج الترميز الخاصة بمجموعة الشرائح من خلال CodecDbLite، ويتم تفعيلها من خلال استدعاء setEnableCodecDbLite على DefaultEncoderFactory.Builder.

تشمل التحديثات الإضافية إتاحة التنزيل الجزئي في Downloader باستخدام PreCacheHelper، والتوجيه التلقائي لصوت XR في ExoPlayer، وتفاعلات أكثر فعالية مع MediaCodec. يُبقي الآن وحدة MediaSession النمطية الإشعارات مرئية لفترة أطول تلقائيًا، ويعرض تطبيق 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.
  • سلسلة الألوان: تمثّل مجموعة الألوان التي يمكن للجهاز إعادة إنتاجها.

المفاهيم الخاطئة الشائعة حول النطاق العالي الديناميكية:

  • الألوان الزاهية: كانت نطاقات الألوان الأوسع، مثل Display P3 وAdobe RGB، متاحة قبل تكنولوجيا HDR، ولا تزال معظم الشاشات تقتصر على P3، حتى مع محتوى BT.2020.
  • تباين أكبر/تفاصيل أفضل في اللون الأسود: لا توفّر تقنية HDR بشكل أساسي درجات أغمق من اللون الأسود مقارنةً بتقنية SDR على الشاشة نفسها. توفّر شاشات OLED تباينًا لا نهائيًا لكليهما. على الرغم من أنّ PQ يخصّص عددًا أكبر من وحدات البت للمناطق الداكنة، إلا أنّه ليس ميزة HDR عالمية.
  • عمق البتات الأعلى: على الرغم من أنّ بعض ملفات تعريف الفيديو بنطاق عالي الديناميكية (مثل HDR10) تستخدم عمليات بث 10 أو 12 بت، إلا أنّ ذلك يخصّ ملفات التعريف هذه ولا يرتبط بشكل أساسي بالنطاق العالي الديناميكية نفسه، كما أنّ عمق البتات الأعلى شائع أيضًا في تنسيقات التصوير الأخرى.

تشير تكنولوجيا HDR بشكل أساسي إلى أعلى درجة سطوع. يتم تعريف "مساحة HDR" هذه على أنّها منطقة متغيرة الحجم بالنسبة إلى SDR. في حين أنّ فيديوهات HDR التقليدية غالبًا ما تشفّر مساحة ثابتة للرأس، تستخدم الشاشات الحديثة مساحة رأس ديناميكية، ما قد يؤدي إلى اختلافات في الجودة. توفّر تكنولوجيات، مثل دقة HDR فائقة وgainmaps، بدائل تستخدم عددًا قليلاً من وحدات البت. تستخدم مجموعة أدوات واجهة المستخدم في 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" باستخدام بيانات اصطناعية، وتحسين واجهة المستخدم الحالية من خلال الأوامر المباشرة.

استخدام حزمة تطوير برامج (SDK) متوافقة مع وقت التشغيل

يتضمّن نظام التشغيل Android 14 وقت تشغيل حزمة تطوير البرامج (SDK)، وهي تقنية جديدة تعزل حِزم SDK التابعة لجهات خارجية في بيئة آمنة ومنفصلة لتوفير حماية أفضل للخصوصية والأمان.

للمطوّرين:

  • يتم تنفيذ حِزم SDK المفعَّلة في وقت التشغيل في هذه العملية المنفصلة.
  • تعمل حِزم تطوير البرامج (SDK) المتوافقة مع وقت التشغيل كوسيط داخل تطبيقك.
  • حمِّل حِزم تطوير البرامج (SDK) الخاصة بـ RE باستخدام SdkSandboxManagerCompat، مع مراعاة القيود (مثل التشغيل في المقدّمة والتحميل الفردي).
  • تسهّل أدوات Shim التواصل بين العمليات على مستوى منخفض.
  • عرض واجهة المستخدم من حِزم SDK الخاصة بـ "الواقع المعزّز" باستخدام SandboxedSdkView وSandboxedUiAdapter
  • يمكنك تشغيل الأنشطة من "وقت تشغيل حزمة تطوير البرامج (SDK)" باستخدام SdkActivityLauncher.

تغيير شكل عناصر Material 3 على WearOS | نصائح حول Jetpack Compose

أصبح بإمكانك الآن تبسيط عملية تغيير شكل العناصر في Wear OS Material 3 for Compose. يمكن للمطوّرين بسهولة إضافة تغييرات على الأشكال المتحركة إلى الأزرار الدائرية باستخدام IconButtonDefaults.animatedShapes، وإنشاء مجموعات أزرار تحرّك تغييرات العرض باستخدام المكوّن ButtonGroup وModifier.animateWidth()، وإنشاء قوائم يمكن تصفّحها عموديًا (TransformingLazyColumn) حيث يتم تغيير حجم العناصر وشكلها باستخدام TransformationSpec عند اقترابها من حواف الشاشة.

إصدارات AndroidX 🚀

في ما يلي ملخّص للتغييرات في AndroidX، مع إعطاء الأولوية للتغييرات الأكثر صلةً بمطوّري تطبيقات Android:

التغيير الذي يؤثّر بشكل عام في مكتبات Compose:

  • تمت زيادة minSdk التلقائي إلى المستوى 23 من واجهة برمجة التطبيقات: بالنسبة إلى androidx.compose وanimation وfoundation وmaterial وruntime وui، تم نقل الحد الأدنى التلقائي لإصدار حزمة تطوير البرامج (SDK) من المستوى 21 من واجهة برمجة التطبيقات إلى المستوى 23. وهذا يعني أنّه في حال استخدام أحدث إصدارات ألفا من مكتبات Compose هذه، سيتطلب تطبيقك ضِمنيًا الإصدار 6.0 (Marshmallow) من نظام التشغيل Android أو إصدارًا أحدث.

أهم التغييرات لمطوّري Compose:

  • واجهة برمجة تطبيقات جديدة للاحتفاظ بالبيانات (Compose Runtime): تقدّم واجهة برمجة تطبيقات للاحتفاظ بالبيانات مشابهة لواجهة rememberSaveable، ولكن للقيم التي تخرج من التسلسل الهرمي للتكوين بدون تسلسل. تكون مدة صلاحيتها أقصر من مدة صلاحية القيم المحفوظة وتتصرّف بشكل مشابه لـ ViewModel، ما يوفّر طريقة جديدة لإدارة الحالة للعناصر القابلة للإنشاء التي قد يتم إضافتها إلى التركيب وإزالتها منه.
  • عمليات الانتقال المحسّنة بين العناصر المشترَكة (الرسوم المتحركة وواجهة المستخدم في Compose): واجهات برمجة تطبيقات جديدة لتفعيل العناصر المشترَكة أو إيقافها ديناميكيًا، وتوضيح عمليات الانتقال الجارية، وتحديد حدود بديلة للعنصر المستهدَف عند التخلص من عنصر مشترَك. يتوفّر أيضًا Modifier.skipToLookaheadPosition جديد لتثبيت التنسيقات.
  • تحسين ميزة "الجلب المسبق لبيانات أداة Pager" (إطار عمل Compose): تستخدم استراتيجية الجلب المسبق لأداة Pager الآن "نافذة ذاكرة تخزين مؤقت" (بحجم إطار عرض واحد) بدلاً من عنصر واحد، ويتم تفعيل ميزة الجلب المسبق الأوّلي تلقائيًا. يتم أيضًا الاحتفاظ بالعناصر لفترة أطول لتسهيل التنقّل.
  • تحسين معالجة التركيز للماوس أو لوحة اللمس (Compose Foundation & UI): ستتم الآن إزالة التركيز تلقائيًا عند وقوع حدث مؤشر لأسفل (من الماوس أو لوحة اللمس) خارج العقدة التي تم التركيز عليها.ComposeViews ويمكنك إيقاف هذا الخيار.
  • مستطيلات التركيز القابلة للتخصيص (أساسيات Compose): تتيح لك مكتبة FocusProperties الآن تحديد منطقة تركيز مخصّصة بدلاً من استخدام المربّع المحيط تلقائيًا، ما يحسّن عملية التنقّل بين عناصر التركيز ومنطق "إبقاء العنصر في إطار العرض" في الحاويات القابلة للتمرير.
  • LifecycleOwner Composable (دورة الحياة): يتيح عنصر قابل للإنشاء جديد إنشاء مثيلات LifecycleOwner ذات نطاق محدّد مباشرةً في شجرة واجهة المستخدم. ويفيد ذلك على وجه الخصوص في إدارة دورات حياة المكوّنات بشكل مستقل، وفي المكتبات مثل Navigation.
  • إتاحة الأنواع التي يمكن أن تقبل القيم الفارغة في SavedStateHandle (Lifecycle وSavedState): تم تسهيل حفظ واستعادة الخصائص القابلة لأن تكون فارغة من خلال إتاحة هذه الميزة في SavedStateHandle وSavedStateRegistryOwner.
  • LineHeightStyle.Mode.Tightإصدار جديد من Compose Foundation وUI: يساعد الوضع "مضبوط" الجديد في فرض ارتفاعات أسطر أصغر، حتى إذا كان ذلك يعني إمكانية قطع الحروف الرسومية الأطول، ما يوفّر تحكّمًا أكثر دقة في تخطيط النص.
  • النقر مرّتين لتحديد كلمة (Compose Foundation): تمت إضافة إمكانية النقر مرّتين لتحديد الكلمات في SelectionContainer وBasicTextField.
  • تغييرات في سلوك WindowInsets (واجهة المستخدم Compose وFoundation):
    ◦ واجهة برمجة تطبيقات WindowInsets.cutoutPath جديدة للحصول على مسار صورة مقطوعة للشاشة.
    ◦ تمت إزالة العلامة isWindowInsetsDefaultPassThroughEnabled، وتم ضبط القيمة التلقائية WindowInsets على عدم الاستهلاك تلقائيًا، ما يسمح لعناصر View الثانوية بتلقّيها.
  • AndroidView requestRectangleOnScreen إصلاح (Compose Foundation): يتم الآن نقل الطلبات التي تقدّمها AndroidViews (مثل EditText التي تحاول البقاء على الشاشة) بشكل صحيح إلى Compose.
  • تحسين التمرير باستخدام عجلة الماوس ثنائية الأبعاد (Compose Foundation & UI): تحسين إتاحة أحداث التمرير باستخدام عجلة الماوس ثنائية الأبعاد، مع توفير واجهات برمجة تطبيقات جديدة للاختبار وعلامة للتحكّم في السلوك

المكتبات والأدوات المساعدة الجديدة:

  • androidx.core:core-backported-fixes (مكتبة جديدة): تتيح هذه المكتبة الجديدة للمطوّرين التحقّق مما إذا تم تطبيق إصلاحات الأخطاء الحرجة (مثل المشاكل على مستوى النظام الأساسي، مثل أخطاء معيّنة في الكاميرا) على أحد الأجهزة. يتيح ذلك تقديم تجارب مستخدم مختلفة استنادًا إلى ما إذا تم حلّ خطأ معروف أم لا.

التغييرات البارزة الأخرى:

  • نشاط الألعاب والإدخال: تمت إضافة إمكانية التوافق التلقائي مع أحجام الصفحات البالغة 16 كيلوبايت وإمكانية استخدام الماوس في GameActivity.
  • تحديد موضع تلميحات الأدوات في Material3: توفير المزيد من أدوات تحديد موضع تلميحات الأدوات، ما يتيح وضعها أعلى أو أسفل أو يمين أو يسار العنصر الأساسي
  • Material3 DatePicker الإصلاحات: يضمن هذا الإصدار أنّ أداة "اختيار التاريخ" تستخدم اللغة الخاصة بها لتنسيق الأرقام، كما يحلّ مشاكل العرض من اليمين إلى اليسار.
  • إتاحة display_override في تطبيقات الويب المستضافة (المتصفّح): تمت إضافة إمكانية استخدام خاصية بيان display_override في تطبيقات الويب المستضافة، ما يتيح المزيد من التحكّم في عرض تطبيقات الويب المستضافة.
  • فتح عنوان URL الأوّلي في تطبيق خارجي (متصفّح): تمت إضافة Intent للسماح بفتح عنوان URL الأوّلي لتطبيق ويب متوافق مع تطبيقات Android في متصفّح خارجي.

Android Developers Backstage

عدنا إليكم بحلقة جديدة من برنامج Android Developers Backstage.

الملء التلقائي في Compose

يقدّم الإصدار 1.8 من Jetpack Compose إمكانات محسّنة بشكلٍ كبير لميزة "الملء التلقائي"، وذلك من خلال الاستفادة من نظام الدلالات في Compose. يمكن للمطوّرين الآن دمج ميزة "التعبئة التلقائية" على مستوى النظام بسهولة من خلال وضع علامات على حقول النص باستخدام دلالات نوع المحتوى ذات الصلة (مثل اسم المستخدم وكلمة المرور)، ما يلغي الحاجة إلى إدارة شجرة "التعبئة التلقائية" يدويًا ويحسّن الأداء.

 

حسنًا، لنبدأ… 👋

هذا كل ما لدينا في هذا العدد، حيث تضمّن تغطية الإصدار التجريبي الأول من Android 16 QPR2 وإصدار ميزة Narwhal في "استوديو Android" وJetpack Compose 1.9 وMedia 3 1.8 وShape Morphing وAutofill in Compose وغير ذلك الكثير.

يُرجى التحقّق مرة أخرى قريبًا لمعرفة آخر الأخبار من عالم مطوّري تطبيقات Android.

تأليف:

متابعة القراءة