دراسة حالة
مشغّل بدقة 4K لتلفزيونات سامسونغ وإل جي
مشغّل وسائط صُمّم للتلفزيون بدل أن يُنقل إليه: قاعدة شيفرة واحدة تعمل على Samsung Tizen وLG webOS، على أجهزة يبلغ عمرها عشر سنوات، بتنقّل مصمّم لجهاز التحكّم، وخلفية قادرة على تغيير سلوك التطبيق بعد نشره.
التقنيات
بُني بـ
- TypeScript
- Preact
- Vite
- Tizen (Samsung)
- webOS (LG)
- AVPlay
- Shaka Player
- IndexedDB
- Java 21
- Spring Boot
- PostgreSQL
- Docker
محرك متصفح من 2015، في غرفة معيشة اليوم
تشغّل تلفزيونات سامسونغ وإل جي تطبيقات الويب، وهو ما يبدو أرضاً مألوفة إلى أن تنظر إلى ما تعمل عليه. جهاز بيع عام 2018 لا يزال في الخدمة، ومحركه يعادل تقريباً Chromium 47. لديه جزء يسير من ذاكرة الهاتف ومعالج بالمستوى نفسه، ويُطلب منه فك ترميز محتوى 4K في الوقت الذي يعرض فيه واجهتك.
يرسم التطبيق على مساحة ثابتة مقدارها 1920 في 1080 يتولّى التلفزيون تحجيمها إلى شاشته، فلا يغيّر جهاز 4K سوى الحدّة ولا شيء آخر. هذا القرار وحده ألغى فئة كاملة من عيوب التخطيط قبل أن توجد، وجعل كل قياساتنا قابلة للمقارنة عبر أجهزة شديدة الاختلاف.
- لا gap في flexbox: التباعد هامش على العنصر الابن، في كل مرة.
- لا CSS grid: كل تخطيط إما flexbox أو تموضع مطلق.
- لا ضبابية ولا ظلال ثقيلة: تكلّف إطارات يحتاجها مفكّك ترميز الفيديو.
- لا يُحرَّك سوى transform وopacity، لأن ما عداهما يستدعي إعادة حساب التخطيط.
القيود بهذه الشدّة تُوضّح الصورة. ثمة طريقة واحدة لبناء معظم الواجهة، وهي الطريقة السريعة.
التنقّل هو المنتج
يُحكم على تطبيق الهاتف بمظهره، ويُحكم على تطبيق التلفزيون بما إذا كان جهاز التحكّم يفعل ما توقّعه المشاهد. لا مؤشّر ولا تمرير ولا إيماءات: أربع جهات، وتأكيد، ورجوع، وتشغيل. كل شاشة شبكة يعبرها المشاهد، وانتقال تركيز خاطئ واحد يزعج أكثر مما تزعجه صفحة بطيئة.
لذلك فالتركيز نموذج صريح قائم على الفهارس، لا استنتاج من بنية الصفحة. تعرف كل واجهة أي خلية نشطة، وما تعنيه كل جهة انطلاقاً منها، وكيف تُحضر النتيجة إلى مجال الرؤية. أما البحث الهندسي فلا يوجد إلا احتياطاً للحالات التي لا يصفها النموذج. وتكرار الضغط مُقيَّد ومختزل إلى انتقال واحد لكل إطار، بحيث يمرّر الضغط المستمر بسرعة مقروءة بدل أن يتجاوز عشرين صفاً.
قوائم تبقى سلسة على معالج تلفزيون
تبلغ قوائم القنوات آلاف المدخلات. عرضها جميعاً أمر غير وارد، والتمرير الافتراضي التقليدي يعيد العرض مع كل انتقال للتركيز، وهو ما يكفي على هذه الأجهزة لفقد الإطارات.
لذا فالنافذة المرئية مجموعة ثابتة من الصفوف لا تُزال أبداً. ونقل التركيز يكتب النص والحالة الجديدين مباشرة داخل تلك الصفوف، متجاوزاً مسار العرض في إطار العمل كلياً. وعلى تلفزيون حقيقي أظهر المحلّل الذي بنيناه داخل التطبيق صفر عمليات عرض للمكوّنات في الثانية أثناء التمرير: فقد غادر العمل دورة العرض تماماً.
القياس على الجهاز، لأن الحاسوب المحمول يكذب
بدا كل شيء فورياً في متصفح سطح المكتب وثقيلاً على تلفزيون حقيقي. هذه الفجوة هي القاعدة على هذه المنصة، وهي سبب خروج كثير من تطبيقات التلفزيون بطيئة. ولأن التلفزيونات التجارية لا توفّر أدوات تطوير صالحة، بنينا مؤشّر أداء داخل التطبيق نفسه وقرأناه من الأريكة.
وجّه ذلك العمل فوراً. تراوحت أزمنة الإطار أثناء التنقّل بين 165 و265 جزءاً من الألف من الثانية مع تعطيل معاينة الفيديو، وبين 0.5 و1.3 ثانية مع تشغيلها. لم يكن الاختناق يوماً في الواجهة، بل في مفكّك الترميز وهو ينازع على السيليكون نفسه، وما كان أي تحسين إضافي للمكوّنات ليغيّر شيئاً.
القياس أولاً ليس تفضيلاً منهجياً على أجهزة كهذه. إنه الفرق بين أسبوع من تحسّن حقيقي وشهر يُنفق في ضبط الطبقة الخطأ.
الخلفية التي يحتاجها أسطول من الأجهزة
خلف التطبيق تقف خدمة Spring Boot مكتوبة بلغة Java: سجلّ للأجهزة، وتراخيص وتفعيل، وإعدادات لكل جهاز، ومسار إعدادات يتيح للمشغّل تغيير سلوك تلفزيونات موجودة في البيوت أصلاً دون إصدار نسخة جديدة.
يعرّف الجهاز بنفسه مرة واحدة عند الإقلاع ويتلقّى كل ما يلزمه في استجابة واحدة: مفاتيح الميزات والحدود والأسعار، كل ذلك. ويخزّن التطبيق هذا في IndexedDB ويواصل العمل حين تتوقّف الشبكة. والإعدادات مقسّمة بحسب المنصة، فيمكن لمفتاح أن ينطبق على أجهزة سامسونغ دون غيرها، واللوحة التي تحرّرها هي نفسها التي يستخدمها فريق الدعم يومياً. هذا عمل خلفي في خدمة قرار منتج: أن تستطيع تغيير رأيك بعد أن يخرج البرنامج من يدك.
اجتياز مراجعة المتجر
تقديم التطبيق إلى متجر سامسونغ مشروع قائم بذاته. فهو يطلب أيقونات ولقطات شاشة بأبعاد دقيقة، ووصفاً يصمد أمام المراجعة، وتصنيفاً عمرياً يطابق ما يفعله التطبيق فعلاً، وشروطاً قانونية تذكر بوضوح ما البرنامج موجّه له وما ليس موجّهاً له.
نولّد كل مواد المتجر من مجموعة واحدة من الملفات المتجهة عبر سكربت بناء، فيعيد تغيير الهوية توليد الحزمة كاملة بالبايت بدل إعادة رسمها يدوياً. وهذا أهم مما يبدو: ففي التقديم الثاني تخسر معظم الفرق أسبوعين.
النتيجة
ما جرى تسليمه
- 01
يعمل على أجهزة من 2015
قاعدة شيفرة واحدة لـ Samsung Tizen وLG webOS، تستهدف محركاً يعادل تقريباً Chromium 47، دون الغرق في حشو التوافق.
- 02
تنقّل بلا مفاجآت
نموذج تركيز صريح قائم على الفهارس، وتكرار ضغط مقيَّد، وانتقال واحد لكل إطار، والبحث الهندسي احتياطاً فقط.
- 03
آلاف الصفوف، بلا إعادة عرض
نافذة ثابتة من صفوف مُعاد استخدامها تُحدَّث أمرياً، قيست على تلفزيون حقيقي بصفر عمليات عرض للمكوّنات في الثانية أثناء التمرير.
- 04
قابل للتغيير بعد النشر
مفاتيح الميزات والحدود والأسعار تصل في استجابة الإقلاع وتُخزَّن للعمل دون اتصال، فيتغيّر السلوك دون تقديم جديد للمتجر.
- 05
عشرون لغة واجهة
بما في ذلك تخطيط كامل من اليمين إلى اليسار، مع ضمان اكتمال الترجمة عبر عملية البناء بدل مراجعتها يدوياً.
الأسئلة الشائعة
أسئلة متكررة
هل يمكن لقاعدة شيفرة واحدة أن تغطي سامسونغ وإل جي معاً؟
نعم، بعناية. يشغّل Tizen وwebOS تطبيقات الويب، والمساحة المشتركة واسعة: منطق التطبيق والتخطيط والتنقّل متطابقة على الاثنين. ما يختلف هو التشغيل: أجهزة سامسونغ تستخدم واجهة AVPlay الأصلية، وإل جي عنصر وسائط قياسياً يقوده Shaka Player. اعزل ذلك خلف واجهة واحدة ولن يحتاج بقية التطبيق إلى معرفة التلفزيون الذي يعمل عليه.
لماذا تطبيق ويب بدل أدوات أصلية؟
لأن أياً من الأدوات الأصلية لا يغطي المنصتين. فـ Tizen وwebOS منصتان مبنيتان على الويب، ومساراتهما الأصلية تتباعد بشدة وتوثيقها شحيح. تطبيق ويب باستراتيجية عرض منضبطة هو أقصر طريق للنشر على المنصتين، وأسهل ما يمكن إبقاؤه حياً على أجهزة ستظل في الخدمة بعد خمس سنوات.
كيف تختبرون على تلفزيونات لا تملكونها؟
تشتري أقدم جهاز تجده، لأنه أول ما سيفشل. الطراز الحديث يخفي كل مشكلات الأداء لديك. وفيما عدا ذلك: محاكيات الشركات المصنّعة للعمل الوظيفي، ومتصفح سطح مكتب مُقيَّد للتخطيط، ومؤشّر أداء داخل التطبيق لكل ما يتعلّق بالسرعة، لأن الأجهزة التجارية لا تتيح أي أدوات تطوير.
كم تستغرق مراجعة متجر سامسونغ؟
احسبها بالأسابيع لا بالأيام، وتوقّع رفضاً واحداً على الأقل. معظم حالات الرفض تخصّ مواد المتجر أو التصنيف العمري أو صياغة الوصف، لا البرنامج نفسه. وتوليد حزمة المواد من ملفات متجهة وكتابة نصوص المتجر قبل التقديم يزيل معظم هذه المخاطرة.
تابع الاستكشاف
تقنيات وخدمات ذات صلة
لديك مشروع في ذهنك؟
لنبنِ معًا شيئًا استثنائيًا.
أخبرنا أين أنت اليوم وإلى أين تريد الوصول. سنردّ خلال يوم عمل واحد بخطوات تالية صريحة، حتى لو كان ذلك يعني أن نرشدك إلى جهة أخرى.