توفّر الشاشات المتصلة تجربة استخدام النوافذ على الكمبيوتر المكتبي على الهواتف العادية، ما يتيح للمستخدمين الوصول إلى الشاشات الكبيرة من أجهزتهم الجوّالة. وتوفّر هذه الميزة إمكانيات جديدة للتفاعل مع التطبيق وزيادة إنتاجية المستخدم.
تنطبق جميع الميزات الفريدة للعرض في نوافذ على الشاشات المتصلة. عند توصيل هاتف بشاشة، تظل حالة الهاتف بدون تغيير، وتبدأ جلسة سطح مكتب فارغة على الشاشة المتصلة. يعمل الجهاز والشاشة كنظامَين فرديَّين، مع تطبيقات خاصة بكل شاشة.
في حال توصيل جهاز مزوّد بميزة "العرض في نوافذ" على الكمبيوتر المكتبي، مثل جهاز لوحي، بشاشة خارجية، تمتد جلسة الكمبيوتر المكتبي على كلتا الشاشتَين. وتعمل الشاشةان بعد ذلك كنظام واحد متواصل. يتيح هذا الإعداد للنوافذ والمحتوى والمؤشر التنقّل بحرية بين الشاشتَين.
يتطلّب إتاحة استخدام الشاشات المتّصلة بفعالية الانتباه إلى عدة جوانب من تصميم تطبيقك وتنفيذه. تضمن أفضل الممارسات التالية توفير تجربة سلسة وفعّالة للمستخدم.
التعامل مع تغييرات الإعلانات الصورية الديناميكية
تم إنشاء العديد من التطبيقات بافتراض أنّ عنصر Display
وخصائصه لن يتغيّروا خلال دورة حياة التطبيق. ومع ذلك، عندما يربط المستخدم شاشة خارجية أو يفصلها، أو حتى ينقل نافذة تطبيق بين الشاشات، يمكن أن يتغيّر عنصر Display
الأساسي المرتبط بسياق تطبيقك أو نافذته. يمكن أن تختلف خصائص الشاشة، مثل الحجم والدقة ومعدّل التحديث ومدى التوافق مع تقنية النطاق العالي الديناميكية والكثافة. على سبيل المثال، إذا حدّدت قيمًا ثابتة استنادًا إلى شاشة الهاتف، من المرجّح أن تتعذّر عرض التنسيقات على شاشة خارجية.
يمكن أن تختلف كثافة وحدات البكسل في الشاشات الخارجية أيضًا بشكل كبير. عليك التأكّد من استجابة تطبيقك بشكلٍ صحيح لتغييرات الكثافة. ويشمل ذلك استخدام وحدات البكسل المستقلة الكثافة (dp) لتصاميم الصفحات، وتوفير موارد خاصة بالكثافة، وضمان تكيُّف واجهة المستخدم بشكل مناسب.
استخدام السياق المناسب
من المهم استخدام السياق الصحيح في البيئات التي تتضمّن شاشات متعددة. عند الوصول إلى الموارد، يختلف سياق النشاط (الذي يتم عرضه) عن سياق التطبيق (الذي لا يتم عرضه).
يحتوي سياق النشاط على معلومات عن الشاشة ويتم تعديله دائمًا لتناسب منطقة العرض التي يظهر فيها النشاط. يتيح لك ذلك الحصول على المعلومات الصحيحة حول كثافة العرض أو مقاييس النافذة لتطبيقك. استخدِم دائمًا سياق النشاط (أو سياق آخر مستند إلى واجهة المستخدم) للحصول على معلومات عن النافذة أو الشاشة الحالية. ويؤثّر ذلك أيضًا في بعض واجهات برمجة تطبيقات النظام التي تستخدِم معلومات من السياق.
الحصول على معلومات عن الشاشة
يمكنك استخدام فئة Display
للحصول على معلومات عن شاشة معيّنة، مثل حجمها أو علاماتها التي تشير إلى ما إذا كانت الشاشة آمنة. للحصول على الشاشات المتاحة، استخدِم خدمة النظام DisplayManager
:
val displayManager = getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
val displays = displayManager.getDisplays()
إدارة بدء النشاط وضبطه
باستخدام الشاشات المتصلة، يمكن للتطبيقات تحديد الشاشة التي يجب تشغيل التطبيق عليها عند إطلاقه أو عند إنشاء نشاط آخر. يعتمد هذا السلوك على وضع تشغيل النشاط المحدَّد في ملف البيان وعلى علامات النية والخيارات التي يضبطها الكيان الذي يشغِّل النشاط.
عند نقل نشاط إلى شاشة ثانوية، يمكن أن يشهد تطبيقك تعديلًا في السياق وتغييرًا في حجم النافذة وتغييرات في الإعدادات والموارد. إذا كان النشاط يعالج تغيير الإعدادات، يتم إعلامه في onConfigurationChanged()
. بخلاف ذلك، تتم إعادة تشغيل النشاط.
إذا كان وضع الإطلاق المحدّد لنشاط معيّن يسمح بمثيلات متعددة، يمكن أن يؤدي الإطلاق على شاشة ثانوية إلى إنشاء مثيل جديد للنشاط. وتتم استعادة كلا النشاطَين في الوقت نفسه، ما قد يكون مفيدًا في بعض سيناريوهات المهام المتعدّدة.
يمكنك بدء نشاط على شاشة معيّنة باستخدام ActivityOptions
:
val options = ActivityOptions.makeBasic()
options.setLaunchDisplayId(targetDisplay.displayId)
startActivity(intent, options.toBundle())
تجنُّب القوائم المسموح بها للأجهزة
تحدّ التطبيقات أحيانًا من واجهة المستخدم والميزات المخصّصة للشاشات الكبيرة على أجهزة محدّدة من خلال قائمة مسموح بها أو من خلال التحقّق من حجم الشاشة المدمج. مع الشاشات المتصلة، لم تعُد هذه الطريقة فعّالة، لأنّه يمكن توصيل أي جهاز جديد تقريبًا بشاشة كبيرة. تصميم تطبيقك ليكون سريع الاستجابة وقابلاً للتكيّف مع أحجام الشاشات وكثافتها المختلفة
إتاحة الأجهزة الملحقة الخارجية
عندما يتصل المستخدمون بشاشة خارجية، غالبًا ما ينشئون بيئة تشبه بيئة الكمبيوتر المكتبي. ويشمل ذلك غالبًا استخدام لوحات مفاتيح وفئران ومسارات لمس وكاميرات ويب وميكروفونات ومكبّرات صوت خارجية. عليك التأكّد من أنّ تطبيقك يعمل بسلاسة مع هذه الأجهزة الملحقة. ويشمل ذلك التعامل مع اختصارات لوحة المفاتيح وإدارة تفاعلات مؤشر الماوس وتوفير كاميرات أو ميكروفونات خارجية بشكل صحيح واحترام توجيه إخراج الصوت. لمزيد من التفاصيل، يُرجى الاطّلاع على توافق الإدخال على الشاشات الكبيرة.
تحسين إنتاجية المستخدم
توفّر الشاشات المتّصلة فرصة كبيرة لتحسين إنتاجية المستخدم. تتوفّر لك الآن الأدوات اللازمة لإنشاء تطبيقات متوافقة مع الأجهزة الجوّالة يمكنها تقديم تجارب مماثلة لتطبيقات أجهزة الكمبيوتر المكتبي. ننصحك بتنفيذ الميزات التالية لزيادة إنتاجية المستخدمين:
- اسمح للمستخدمين بفتح نُسخ متعددة من التطبيق نفسه. يُعدّ ذلك أمرًا قيّمًا لمهام مثل مقارنة المستندات أو إدارة محادثات مختلفة أو عرض ملفات متعددة في الوقت نفسه.
- يمكنك السماح للمستخدمين بمشاركة بيانات غنية داخل تطبيقك وخارجه باستخدام ميزة السحب والإفلات.
- ساعد المستخدمين في الحفاظ على سير عملهم في جميع تغييرات الضبط من خلال تنفيذ نظام إدارة حالة قوي.
من خلال اتّباع هذه الإرشادات والاستفادة من أمثلة الرموز البرمجية المقدَّمة، يمكنك إنشاء تطبيقات تتكيّف بسلاسة مع الشاشات المتّصلة، ما يقدّم للمستخدمين تجربة أكثر ثراءً وإنتاجية.