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

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

قراءة لمدة 3 دقائق
Francesco Romano
مهندس علاقات المطوّرين، Android

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

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

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

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

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

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

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

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

كتبه:

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