스크립트
00:00:00اعتادت عملية بناء تطبيقات سطح المكتب عبر المنصات أن تعني اللجوء إلى إلكترون، لكن في هذه الأيام نحن
00:00:04نتمتع بترف الاختيار، لذا لتوضيح أي ارتباك سنقارن اليوم بين أفضل ثلاثة خيارات لـ
00:00:09بناء تطبيقات سطح المكتب عبر المنصات، سنلقي نظرة على توري المكتوب بلغة رست، وإلكترو بون من فريق
00:00:14بون، ودينو ديسكتوب العرض الجديد من دينو، وسنستخدم أيضًا إلكترون كمرجع، وإذا كنت
00:00:20ترغب في رؤية أداة مختلفة يتم تغطيتها في هذه القناة، فقط أخبرني في التعليقات
00:00:23سنقارن بين أربعة أشياء: حجم الحزمة، أداء بدء التشغيل، أداء وقت التشغيل، وتجربة
00:00:29المطور. لقد قمت ببناء نفس التطبيق أربع مرات، أداة تسجيل شاشة تسمح لك بتعديل النتائج
00:00:35على جدول زمني والإخراج بصيغة mp4. لقد اخترت هذا النوع من التطبيقات تحديدًا لأن معالجة الفيديو
00:00:40يمكن أن تدفع هذه الأنواع من الأدوات إلى حدودها القصوى. بالطبع، لا يعتمد كل شيء على الأداء،
00:00:44فمجموعة مهارات فريقك ونوع المنتج الذي تبنيه سيؤثران جميعًا على نوع
00:00:49إطار العمل الذي تختاره، لكن نأمل أن يمنحك هذا بعض التوجيه حول ما يمكن توقعه.
00:00:58لذا، دعنا ننتقل سريعًا إلى عرض توضيحي للتطبيق الذي بنيناه. نبدأ بتشغيل
00:01:03تطبيقنا، يمكننا اختيار الشاشة التي نريد تسجيلها ثم الضغط على زر التسجيل. الآن يمكننا إجراء تسجيل قصير
00:01:08للشاشة، بمجرد الانتهاء يمكننا الضغط على إيقاف، ثم ستظهر نافذة تحتوي على تسجيلنا على
00:01:12الجدول الزمني. يمكننا بعد ذلك قص هذا لإزالة الفراغ ثم الضغط على تصدير للإخراج بصيغة mp4. التطبيق هو
00:01:18بسيط للغاية في الواقع، ولكن لأننا نستخدم واجهات برمجة تطبيقات متعددة لتسجيل ومعالجة الفيديو و
00:01:24عرض واجهة المستخدم، يجب أن يكون هذا اختبارًا لائقًا. لذا فإن أول شيء سنتحقق منه هو
00:01:28حجم الحزمة، وتذكر أن هذه التطبيقات جميعها توفر وظائف متطابقة. إلكترون كمرجع يبلغ 323
00:01:35ميجابايت، توري يأتي بحجم 57 ميجابايت فقط، إلكترو بون 418 ميجابايت، ودينو 111 ميجابايت.
00:01:44جميعها تحتوي أيضًا على ffmpeg مضمن للتصدير إلى mp4 وهذا يضيف 45 ميجابايت وحدها، وإلكترو بون هو
00:01:52كبير جدًا لأنني اضطررت لشحن كروميوم معه. لقد حاولت جاهدًا ولكنني حرفيًا لم أستطع جعل
00:01:56تسجيل الشاشة يعمل مع نظام عرض الويب الأصلي، وتحديدًا للتسجيل من جافا سكريبت.
00:02:01أنت بحاجة إلى واجهة برمجة تطبيقات التقاط الشاشة ودالة get display media، فأنت تطلب من المتصفح الشاشة
00:02:06وهو يسلمك تدفقًا، يقوم مسجل الوسائط بترميزه، وهكذا يفعل إلكترون ودينو. إلكترو بون
00:02:12لا يتضمن واجهة برمجة التطبيقات تلك على الإطلاق، لذا الطريقة الوحيدة للوصول إليها هي إعادة تقديم كروميوم، وهذا
00:02:17يضيف 200 ميجابايت إضافية من التضخم. واجهة برمجة تطبيقات دينو طبقت هذا، لذا فهي نفس الكود
00:02:24ولكن بدون كروميوم، ولهذا السبب ينتهي حجم حزمة دينو بحوالي 100 ميجابايت، وإلكترو
00:02:30بون ينتهي بحجم يقترب من 400. ورست لم تحتج إلى أي من هذا لأن توري لا يسجل من
00:02:35عرض الويب على الإطلاق، بل يقوم بكل ذلك من خلال الخلفية عبر مجموعة التقاط الشاشة الأصلية. هذه هي
00:02:40نفس إطار عمل ماك أو إس الذي يستخدمه كويك تايم، ويتم تسجيل كل شيء مباشرة من الخلفية. أنت تعطيه
00:02:46شاشة، برنامج ترميز، ومسار ملف، وهو يكتب الملف بنفسه. عرض الويب هو فقط واجهة المستخدم، ولا يلمس أبدًا
00:02:52إطارًا واحدًا، كما تحصل على أشياء مجانًا يتعين على بناء جافا سكريبت التعامل معها.
00:02:56مجموعة التقاط الشاشة تدمج الميكروفون وصوت النظام بنفسها، وتنهي ملف mp4 بشكل صحيح. لقد
00:03:02تركت أيضًا ffmpeg داخل تطبيق توري حتى نتمكن من التصدير إلى تنسيقات مختلفة، ولكن من الناحية الفنية هذا
00:03:07اختياري بالفعل. حسنًا، الآن يمكننا تشغيل هذه التطبيقات لاكتشاف وقت البدء، وقد كتبت نصًا
00:03:13يقوم بذلك 10 مرات حتى أتمكن من أخذ المتوسط. إلكترون كمرجع كان 273 مللي ثانية، توري
00:03:19جاء في الواقع عند 311 مللي ثانية، إلكترو بون كان 773 مللي ثانية، ودينو كان 242 مللي ثانية.
00:03:29والمفاجأة هنا بالنسبة لي هي أن توري لم يكن الأسرع، فهو يتأخر قليلاً عن إلكترون، ثم دينو
00:03:34تغلب على الجميع في الواقع. الافتراض هو أن رست بالإضافة إلى نظام عرض الويب سيعني بداية
00:03:39فورية، ولكن نظرًا لأن محرك العرض لا يزال بحاجة إلى التمهيد في كلتا الحالتين، فمن المحتمل أن يكون هذا هو ما يساهم في
00:03:44سرعة البدء الأبطأ قليلاً. إلكترو بون هو الاستثناء، يقترب من ثلاثة أضعاف إلكترون، إنه يقوم بتشغيل
00:03:50مشغل يقوم بتشغيل بون الذي يشغل كروميوم، ثلاثة أوقات تشغيل في سلسلة، ويمكنك حقًا الشعور بذلك.
00:03:56الآن دعنا نلقي نظرة على الذاكرة بعد الإطلاق بمجرد أن يعمل التطبيق بالفعل، إلكترون هو المرجع
00:04:01مرة أخرى وكان 128 ميجابايت، توري جاء عند 109 ميجابايت، إلكترو بون عند 208 ميجابايت، ودينو عند 98
00:04:10ميجابايت. لذا دينو وتوري كانا متساويين تقريبًا، ثم إلكترو بون كان ضعف كل شيء آخر تقريبًا.
00:04:15بالنسبة لتوري، هذا ليس قريبًا بأي حال من التحسن بمقدار 10 أضعاف الذي يشير إليه التسويق. على القرص، نعم هو أصغر بكثير،
00:04:21ولكن بصمة الذاكرة الفعلية عند تشغيل التطبيق تشبه إلى حد كبير الأدوات الأخرى.
00:04:26وشيء واحد يجب مراقبته عند إجراء هذه الفحوصات بنفسك، توري يستخدم
00:04:31نظام عرض الويب وتلك العمليات ليست أبناء لتطبيقك. يقوم ماك أو إس بتشغيلها بشكل منفصل، لذا
00:04:36يظهر مراقب النشاط توري بحوالي 36 ميجابايت ويبدو أنه يتفوق على إلكترون ثلاث مرات
00:04:42لكنه لا يفعل. لذلك عندما تضيف كل تلك العمليات معًا، تصبح الـ 36 ميجابايت أقرب إلى 109 ميجابايت
00:04:48وهو ما سجلناه في الاختبار. فيما يتعلق بتسجيل الشاشة نفسه، لاحظت أداءً أفضل بكثير
00:04:53من تطبيق توري، وربما يرجع هذا إلى أننا لا نسجل البيانات في عرض الويب
00:04:58ثم ننقلها عبر جسر، بل يتم تسجيل كل شيء باستخدام حزمة تطوير البرامج الأصلية التي تأتي
00:05:04مع النظام. إذا كنت ترغب في الاقتراب من تسجيلات بمعدل 60 إطارًا في الثانية، فإن رست وتوري سيكونان الطريق الأمثل.
00:05:10الآن دعنا نلقي نظرة على تجربة المطور، وبسبب اختلافات كل منصة، هذا التطبيق البسيط
00:05:15لم يكن سهل البناء على الإطلاق. بشكل عام، كان إلكترون وتوري الأسهل في التنفيذ،
00:05:20ولكن دينو وإلكترو بون واجها بالفعل الكثير من المشكلات وتعطل النظام. في دينو، عندما
00:05:26بدأنا تسجيلًا ثم أخفينا التطبيق، كان التطبيق بأكمله يغلق. أعتقد أن هذا بسبب
00:05:30أنه عندما لا تظل هناك شاشات مرئية، يفترض دينو فقط أن التطبيق قد انتهى، ولذا قام بإنهاء
00:05:36العملية بأكملها. لذا كان الحل البديل لهذا هو إخفاء العرض خارج الشاشة بدلاً من ذلك.
00:05:41واجه إلكترو بون كل هذه المشكلات حول الحاجة إلى تجميع كروميوم لتسجيل الشاشة، ولسبب ما
00:05:46تعتمد الحزمة في الواقع على 3js و babylon js، وهي مخصصة للريدر ثلاثي الأبعاد، مما ساهم في
00:05:53حجم الحزمة المتضخم. لذا في النهاية، شخصيًا سأختار توري، ولكن إذا كنت حقًا لا ترغب في البرمجة
00:05:58بلغة رست، فإن إلكترون لا يزال المنصة الناضجة لمطوري تايب سكريبت. يبدو دينو جيدًا ولكن أعتقد أن
00:06:04المنصة لا تزال بحاجة إلى بعض الوقت لتنضج، ثم إلكترو بون بالنسبة لي كان الأسوأ بينهم جميعًا.
00:06:09لذا نأمل أن تتمكن من اتخاذ حكم لنفسك. أخبرني بما تفكر فيه في التعليقات، وقد قمنا أيضًا
00:06:13بعمل فيديو بالكامل عن دينو ديسكتوب، لذا إذا كنت تريد معرفة المزيد عن ذلك، يمكنك النقر على هذا
00:06:18الفيديو هنا. بخلاف ذلك، كنت معكم وارين من betterstack، شكرًا للمشاهدة وأراكم في المرة القادمة.