ما هو أفضل بديل لـ Electron؟ لنكتشف ذلك.

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

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، شكرًا للمشاهدة وأراكم في المرة القادمة.

핵심 요약

يعد Tauri الخيار الأفضل لبناء تطبيقات سطح المكتب بفضل كفاءته في حجم الحزمة والأداء باستخدام واجهات البرمجة الأصلية، بينما لا تزال بدائل مثل Deno وElectrobun تفتقر إلى النضج اللازم للاستخدام الإنتاجي.

하이라이트

  • تتراوح أحجام حزم تطبيقات تسجيل الشاشة المبنية باستخدام نفس الوظائف بين 57 ميجابايت لـ Tauri و418 ميجابايت لـ Electrobun.

  • يعمل تطبيق Tauri بذاكرة وصول عشوائي تبلغ 109 ميجابايت، بينما يستهلك Electrobun 208 ميجابايت، ويحقق Deno Desktop أقل استهلاك بـ 98 ميجابايت.

  • يتصدر Deno Desktop سرعة بدء التشغيل بـ 242 مللي ثانية، يليه Electron بـ 273 مللي ثانية، ثم Tauri بـ 311 مللي ثانية.

  • يعتمد Tauri على واجهات برمجة التطبيقات الأصلية لنظام التشغيل لتسجيل الشاشة، مما يلغي الحاجة لكروميوم ويسهل التسجيل بمعدل 60 إطاراً في الثانية.

  • يضطر Electrobun لشحن كروميوم بالكامل للتعامل مع واجهة برمجة تطبيقات تسجيل الشاشة، مما يرفع حجم الحزمة بشكل كبير.

  • تفتقر منصتا Deno وElectrobun إلى النضج البرمجي وتواجهان مشكلات في استقرار النظام عند تنفيذ مهام بسيطة مثل تسجيل الشاشة.

타임라인

مقارنة حجم الحزمة

  • يبلغ حجم حزمة تطبيق تسجيل الشاشة المرجعي في Electron 323 ميجابايت.
  • يصل حجم حزمة Electrobun إلى 418 ميجابايت بسبب ضرورة تضمين كروميوم.
  • يختزل Tauri الحجم إلى 57 ميجابايت عبر استخدام الخلفية الأصلية لنظام التشغيل بدلاً من متصفح الويب.

تستند المقارنة إلى تطبيق تسجيل شاشة موحد يتطلب معالجة الفيديو وتصديره بصيغة mp4. تطلب استخدام تسجيل الشاشة في Electron وDeno واجهات برمجة تطبيقات المتصفح، بينما استخدم Tauri نظام التقاط الشاشة الأصلي في macOS، مما قلل من الاعتماد على مكتبات إضافية مثل ffmpeg لتسجيل الصوت والنظام.

أداء وقت التشغيل والذاكرة

  • يحقق Deno Desktop أسرع وقت بدء تشغيل بمتوسط 242 مللي ثانية.
  • يتجاوز استهلاك ذاكرة Electrobun ضعف استهلاك الأدوات الأخرى بـ 208 ميجابايت.
  • يوفر Tauri أداء تسجيل أكثر استقراراً بفضل عدم الاعتماد على جسر التواصل مع متصفح الويب.

يؤثر تمهيد محرك العرض في جميع الإطارات على سرعة التشغيل، مما يجعل التوقعات ببدء فوري لـ Tauri غير دقيقة عملياً. على الرغم من أن Tauri يتفوق في حجم القرص، إلا أن بصمة الذاكرة الفعلية عند التشغيل تقترب من نظيراتها، مع تفوق تقني في سلاسة تسجيل الإطارات بسبب التكامل المباشر مع SDK الخاص بالنظام.

تجربة المطور ونضج المنصة

  • يعد Electron وTauri الأكثر استقراراً وسهولة في التنفيذ حالياً.
  • يعاني Deno من مشكلات إغلاق تلقائي للتطبيق عند إخفاء النوافذ أثناء التسجيل.
  • يفشل Electrobun في توفير بيئة عمل عملية نظراً لتعقيدات الحزم والاعتمادات غير الضرورية.

واجهت عمليات التطوير باستخدام Deno وElectrobun تعطلات متكررة في النظام أثناء محاكاة مهام تسجيل الشاشة. يظل Electron الخيار القياسي لمطوري TypeScript، بينما يمثل Tauri الخيار الأمثل لمن يسعون وراء الكفاءة التقنية، بشرط القبول بالبرمجة بلغة رست في بعض أجزاء التطبيق.

커뮤니티 글

모든 글 보기