أخبار المنتجات

الإصدار 1.5 من Jetpack WindowManager مستقر

مدّة القراءة: دقيقتان
عرض الملف الشخصي لـ "فرانشيسكو رومانو"
Francesco Romano مهندس علاقات المطوّرين، Android

يسرّنا الإعلان عن توفّر الإصدار الثابت من Jetpack WindowManager 1.5.0 الآن.

يستند هذا الإصدار إلى الأساس القوي لقابلية التكيّف في WindowManager، ما يسهّل إنشاء واجهات مستخدم محسّنة وقابلة للتكيّف تبدو رائعة على جميع أحجام الشاشات. مع استمرار نمو منظومة Android المتكاملة، يتفاعل المستخدمون مع التطبيقات على مجموعة متنوعة من الأجهزة أكثر من أي وقت مضى: من الهواتف والأجهزة القابلة للطي إلى الأجهزة اللوحية والشاشات المتصلة وأجهزة Chromebook وحتى شاشات السيارات في وضع التوقف.

يركّز الإصدار 1.5 من WindowManager على توفير أدوات أفضل لبيئة الأجهزة المتنوعة هذه.

الميزات الجديدة في WindowManager 1.5

يقدّم هذا الإصدار الثابت نقاط توقّف جديدة للشاشات الكبيرة جدًا، ويحسّن واجهة برمجة التطبيقات لتضمين الأنشطة، ويوفر مرونة أكبر في احتساب مقاييس النوافذ.

فئات جديدة لأحجام النوافذ: كبيرة وكبيرة جدًا

أهم تحديث في الإصدار 1.5 هو إضافة فئتَين جديدتَين لحجم النافذة: "كبير" و"كبير جدًا".

فئات حجم النافذة هي مجموعة رسمية ومحدّدة من نقاط توقُّف إطار العرض التي تساعدك في تصميم وتطوير تنسيقات متكيّفة. ومع الإصدار 1.5، نوسّع نطاق هذه الإرشادات لتشمل الشاشات التي تتجاوز الأجهزة اللوحية العادية.

في ما يلي نقاط توقُّف العرض الجديدة:

  • كبير: للعروض التي تتراوح بين 1200 بكسل مستقل الكثافة و1600 بكسل مستقل الكثافة
  • كبير جدًا: للعرض ≥1600 بكسل مستقل الكثافة
window_size_classes_width.png

فئات أحجام النوافذ المختلفة استنادًا إلى عرض الشاشة 

لماذا هي مُهمّة؟

بدءًا من الإصدار التجريبي 2 من Android 16 QPR1، يتيح Android استخدام الشاشات المتصلة، ما يسمح للمستخدمين بتوصيل شاشة خارجية بأجهزتهم وتحويلها إلى أداة تشبه الكمبيوتر المكتبي بشاشة كبيرة.

ADB_5350_asset.gif

هاتف متصل بشاشة خارجية، مع جلسة سطح مكتب على الشاشة الخارجية 

ومع توفّر هذه الميزة الجديدة، من المهم تقديم إرشادات واضحة حول تضمين الشاشات الأكبر حجمًا. 

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

من خلال توفير نقاط توقُّف رسمية لأحجام الشاشات الكبيرة جدًا، يمنحك WindowManager 1.5 إشارة واضحة لتقديم تنسيقات مصمّمة خصيصًا لتجربة كمبيوتر مكتبي مثمرة وغنية بالمعلومات.

يمكن احتساب فئات حجم النافذة باستخدام computeWindowSizeClass()‎، وهي دالة إضافة لمكتبة androidx.window.core.layout تعمل على توسيع نوع Set<WindowSizeClass>. 

لتضمين فئات أحجام النوافذ الجديدة في مشروعك، ما عليك سوى استدعاء الدالة من مجموعة WindowSizeClass.BREAKPOINTS_V2 بدلاً من WindowSizeClass.BREAKPOINTS_V1:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


بعد ذلك، طبِّق التنسيق الصحيح عندما تتأكّد من أنّ تطبيقك يتوفّر له على الأقل هذه المساحة:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

المكتبات التكيُّفية

تساعدك مكتبة Compose Material 3 Adaptive في إنشاء واجهات مستخدم تكيُّفية تتكيّف تلقائيًا وفقًا لإعدادات النافذة الحالية، مثل فئات حجم النافذة أو أوضاع الجهاز. 

والخبر السار هو أن المكتبة محدّثة بالفعل بنقاط التوقف الجديدة! بدءًا من الإصدار 1.2 (الذي أصبح الآن في مرحلة الإصدار المحتمل)، تتيح وظائف توجيهات scaffold التلقائية للّوحات فئات عرض النوافذ الكبيرة والكبيرة جدًا.

ما عليك سوى الموافقة على استخدام نقاط التوقف الجديدة من خلال الإشارة إلى ذلك في ملف تصميم Gradle:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

تحسينات إضافية

  • تضمين الأنشطة: الحفظ والاستعادة تلقائيًا: يمكن الآن لواجهة WindowManager حفظ واستعادة حالة تقسيمات تضمين الأنشطة تلقائيًا. يساعد ذلك في الحفاظ على تنسيق المستخدم أثناء إعادة إنشاء العملية، ما يؤدي إلى تجربة أكثر استقرارًا واتساقًا. لم يعُد المطوّرون بحاجة إلى حفظ الحالة واستعادتها يدويًا، بل يمكنهم ببساطة تفعيل ميزة الحفظ التلقائي من خلال ضبط السمة EmbeddingConfiguration#isAutoSaveEmbeddingState.
  • توسيع WindowMetrics: يمكنك الآن احتساب WindowMetrics من سياق التطبيق، وليس فقط من سياق النشاط. ويوفّر ذلك مرونة أكبر للوصول إلى معلومات النافذة من أجزاء مختلفة من تطبيقك.

كيفية البدء

لبدء استخدام فئات الأحجام الجديدة "كبير" و"كبير جدًا" وميزات الإصدار 1.5 الأخرى في مشاريع Android، يجب تحديث تبعيات تطبيقك في build.gradle.kts إلى أحدث إصدار ثابت:

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

يُعدّ الإصدار 1.5 من WindowManager خطوة أخرى نحو إنشاء تطبيقات متكيّفة بالكامل تعمل على جميع أشكال أجهزة Android. يمكنك الاطّلاع على ملاحظات الإصدار الرسمية للحصول على قائمة كاملة بالتغييرات وإصلاحات الأخطاء.

مع أطيب التحيّات،

من كتابة:
متابعة القراءة