سيتضمن الإصدار التالي من Android من Google، Android 10 Q، وضعًا مظلمًا على مستوى النظام. كيف ستتعامل التطبيقات في Android Q مع السمات المظلمة؟
في لدينا أول منشور من خلال تفصيل التغييرات التي وجدناها من إصدار Android Q قيد التطوير الذي حصلنا عليه، تحدثنا باختصار عن الوضع المظلم الذي أثار حماسة الجميع. للتلخيص، يمكن تمكين الوضع المظلم المدمج في Google في Android Q عبر خيار "الوضع المظلم" الجديد في إعدادات العرض. يمكن أن يكون الوضع الداكن قيد إيقاف التشغيل دائمًا أو تشغيله دائمًا أو تمكينه تلقائيًا في الليل وتعطيله في الصباح. يتميز الوضع الداكن بواجهة SystemUI (لوحة مستوى الصوت، وقائمة الطاقة، ولوحة الإعدادات السريعة، والإشعارات)، وتطبيق الإعدادات، وإطار العمل (لون التمييز، وما إلى ذلك).
أعلاه: الوضع الداكن في Android Q على Google Pixel 3 XL. أدناه: المظهر الفاتح في Android Pie على Google Pixel 2 XL.
ومع ذلك، لا تريد Google أن تكون عناصر النظام ذات طابع داكن فقط. إنهم يعملون أيضًا على التأكد من أن جميع تطبيقات الطرف الأول الخاصة بهم تدعم الوضع المظلم عندما يقلب المستخدم المفتاح. تطبيقات جوجل مثل
رسائل, هاتف, جهات الاتصال, أخبار, يلعب العاب, موقع YouTube, خرائط، والمزيد تم تحديثها من خلال تبديل الوضع المظلم الذي يواجه المستخدم، بينما تحب التطبيقات الأخرى ذلك جوجل كروم لا نزال نعمل على حل أي مكامن الخلل قبل Google I/O 2019. بدأت Google أيضًا في تشجيع مطوري تطبيقات الطرف الثالث على ذلك احتضان المواضيع المظلمة في تطبيقاتها لأن الشركة تعترف بأنها رائعة لعمر البطارية (على الأقل على الهواتف الذكية المزودة بشاشات OLED).لمساعدة المطورين على تحديث تطبيقاتهم بدعم الوضع المظلم لنظام Android Q، توفر Google خيارًا جديدًا للمطورين يبدو أنه يجبر جميع التطبيقات على التغيير إلى الوضع المظلم. هذا الخيار غير مخصص للمستخدمين الذين يريدون استخدام الوضع المظلم في كل شيء، لأنه يصعب على النظام اختيار الألوان المناسبة لجميع التطبيقات التي لا تحتوي على وضع مظلم أصلي. ولحسن الحظ، وضعت جوجل بالفعل الأساس للتطبيقات لدعم الأوضاع المظلمة، وهناك بالفعل العديد من التطبيقات التي تدعم الأوضاع المظلمة يبدو جيدًا مع تمكين خيار تجاوز الوضع المظلم في Android Q حتى إذا لم يكن التطبيق يحتوي على وضع مظلم يواجه المستخدم تبديل. فيما يلي مجموعة من لقطات الشاشة من 24 تطبيقًا مختلفًا توضح كيف تبدو عندما يتم فرض الوضع المظلم عليها باستخدام تبديل الوضع المظلم لتجاوز Android Q. لن يبدو كل تطبيق جيدًا، كما سأوضح لك أدناه.
تنفيذ الوضع المظلم في Android Q
في مستوى API 8 (Android 2.2 Froyo)، قدمت Google - تصفيات ليلية للموارد. يمكن لمطوري التطبيقات التبديل بين الوضع النهاري والليلي باستخدام setNightMode UiModeManager. ومع ذلك، يتطلب setNightMode أن يكون الجهاز في وضع السيارة أو في وضع الإرساء إذا كان الجهاز على مستوى API 22 أو أقل. أبكومبات v23.2 جلب تطبيق DayNight، مما يسمح لتطبيقات مثل عملاء Reddit بالتبديل تلقائيًا بين سمات النهار والليل الخاصة بهم بناءً على الوقت من اليوم باستخدام AppCompatDeletegate.setDefaultNightMode(). مستوى API 28 (Android 9 Pie) جعل MODE_NIGHT_FOLLOW_SYSTEM (القيمة الافتراضية لـ setDefaultNightMode()) يتبع إعداد النظام المحدد من قبل المستخدم في الإعدادات -> خيارات المطور -> الوضع الليلي. غوغل يعمل على تحسينات على DayNight API في AppCompat، خاصة فيما يتعلق بـ "المشكلات التي تتم مواجهتها بشكل متكرر" مثل مشكلات WebView. وأخيرا، تم تمكين جوجل كشف الوضع الليلي ولديه التطبيقات المحظورة بدون ال MODIFY_DAY_NIGHT_MODE التوقيع/الإذن المميز في إطار عمل Android Q. ويعني التغيير الأخير أن التطبيقات لم تعد قادرة على تعديل الوضع الليلي على مستوى النظام بعد الآن، وهو ما سمح لخلل جديد في الرسائل بإرباك المستخدمين في Android Pie.
تحديث: ان تحديث إلى أندرويدX ستسهل مكتبة الدعم على المطورين تمكين الأوضاع المظلمة تلقائيًا في تطبيقاتهم عندما يدخل الجهاز في وضع توفير شحن البطارية.
فرض الوضع المظلم في Android Q
تطبيقات مثل Snapchat، وSlack، وAOSP Email، وAOSP Messaging، وAOSP Dialer، وغيرها الكثير لها مؤهلات موارد ليلية، حتى لو كانت لا توفر للمستخدم طريقة لاستخدام التطبيق مع الوضع الليلي. التطبيقات الأخرى التي لا تحتوي على مؤهلات موارد ليلية مشفرة، مثل Facebook وInstagram، قد تبدو جيدة أو لا تبدو جيدة عند تشغيل المظهر المظلم لتجاوز Android Q. يبدو Instagram جيدًا، بينما يحتاج Facebook إلى الكثير من العمل. من خلال الاختبار الذي أجريته، يختلف خيار مطور الوضع الليلي تجاوزًا تمامًا عن عكس الألوان في إعدادات إمكانية الوصول - ربما تعتزم Google أن تساعد هذه الميزة المطورين في إنشاء أوضاع مظلمة لتطبيقاتهم أثناء معاينة Android Q Developer Previews جاري التنفيذ. لن نعرف بالضبط كيف تعمل هذه الميزة حتى يتم إصدار الكود المصدري لنظام Android Q أو تنشر Google وثائق خاصة به.
يتم كسر تجاوز الوضع المظلم في Android Q في التطبيقات التي تستخدم WebViews.
في ال "تكلفة لون البكسل"محاضرة يقدمها كريس بانيس وألان فيفريت من Google، يشجع الثنائي المطورين على تنفيذ السمات المظلمة من خلال:
- استخدام DayNight API في AppCompat. تستجيب أدوات المخزون تلقائيًا للتغييرات في الوضع الليلي، أو يمكنك إضافة مفتاح في تطبيقك أيضًا.
- تطبيق سمات التراكب ديناميكيًا في وقت التشغيل عن طريق استدعاء getTheme().applyStyle(). يمكن العثور على مزيد من المعلومات في هذا الحديث السابق هنا.
- هيكلة تطبيقك ليعتمد على استخدام سمات السمات مثل colorForeground، وcolorControlNormal، وcolorAccent، وما إلى ذلك.
- إضافة تصفيات ليلية لمواردك. -يجب استخدام التصفيات الليلية للموارد التي يصعب استخراج ألوان السمات.
- تمكين وضع الألوان المعكوسة (الإعدادات --> الألوان --> عكس الألوان) للحصول على فكرة سريعة عن الشكل الذي سيبدو عليه تطبيقك في الوضع المظلم. إذا كنت تريد التقاط لقطة شاشة لتطبيقك بألوان معكوسة، فيجب أن تدرك أن لن يظهر انعكاس الألوان في لقطة الشاشة.
عند الإصدار، سيمتد الوضع المظلم لنظام Android Q إلى تطبيقات Google التابعة للطرف الأول، ولكننا نأمل أن تتبنى تطبيقات الطرف الثالث السمات المظلمة بسرعة في تطبيقاتها. علاوة على ذلك، نأمل أن نرى المزيد من التطبيقات تتغير تلقائيًا إلى سماتها الليلية عندما يقوم المستخدم بتمكين الإعداد على مستوى النظام. في الوقت الحالي، التطبيق الوحيد الذي رأيته يغير السمات تلقائيًا عند تمكين الوضع المظلم على مستوى نظام Android Q هو جهات اتصال Google. سنرى كيف ستسير الأمور في غضون شهرين عندما يتم إصدار Android Q، ولكن لجميع المطورين الذين يقرأون هذا: احتضن الجانب المظلم!
مع مدخلات من مساهم LineageOS جوي ريزولي.