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

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

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

يسرّنا الإعلان عن أنّ الإصدار 1.5.0 من Jetpack WindowManager أصبح مستقرًا الآن.

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

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

ما الجديد في الإصدار 1.5 من WindowManager

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

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

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

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

في ما يلي نقاط التوقف الجديدة حسب العرض:

  • كبيرة: للعروض التي تتراوح بين 1200dp و1600dp
  • كبيرة جدًا: للعروض التي تزيد عن 1600dp
window_size_classes_width.png

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

ما أهمية هذه الفئات؟

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

ADB_5350_asset.gif

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

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

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

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

يمكن حساب فئات أحجام النوافذ باستخدام 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 (الذي أصبح الآن في مرحلة المرشح للإصدار)، تتوافق توجيهات السقالة التلقائية للوحة مع فئات أحجام النوافذ الكبيرة والكبيرة جدًا حسب العرض.

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

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

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

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

كيفية البدء

لبدء استخدام فئتَي الحجم الجديدتَين "كبيرة" و"كبيرة جدًا" والميزات الأخرى في الإصدار 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. يمكنك الاطّلاع على ملاحظات الإصدار الرسمية للحصول على قائمة كاملة بالتغييرات وعمليات إصلاح الأخطاء.

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

Written by:
متابعة القراءة