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

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

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

المؤلّف:

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