Transcript
00:00:00هذا Paik، أداة سطر أوامر تحول أي موقع إلكتروني إلى تطبيق سطح مكتب أصلي بـ
00:00:05أمر واحد. بنيت باستخدام لغة Rust، لذا يمكن أن يكون حجم التطبيقات الناتجة حوالي 5 ميجابايت، وهو حجم صغير جداً مقارنة
00:00:10بـ Electron، الذي يحزم نسخة كاملة من متصفح كروم في كل تطبيق. يمكنك حتى حقن
00:00:15ملفات CSS و JavaScript، وإضافة أيقونة في شريط النظام، وتغيير نمط شريط العنوان، كل ذلك دون كتابة سطر
00:00:20واحد من كود Rust. ولكن لماذا قد أستخدم هذا الأداة بدلاً من الأدوات المماثلة الأخرى، ولماذا يتطلب
00:00:25Paik وجود PNPM أو NPM إذا كان مبنياً على Rust؟ لا أريد معرفة السبب حقاً،
00:00:31ولكن اشتركوا ولنكتشف ذلك. أنشأ Paik في عام 2022 من قبل TW93، وهو مهندس منتجات
00:00:40من الصين، وهو أيضاً مبتكر Mole، أداة تحسين أجهزة الماك الشهيرة جداً، والتي كنت أستخدمها
00:00:45فعلياً لفترة من الوقت. لكن فكرة Paik منطقية جداً، لأنه إذا فكرت في الأمر،
00:00:49فإن تطبيقات مثل YouTube Music، وGmail، وInstagram لا تملك تطبيقات أصلية رسمية. فهي توجد فقط
00:00:55داخل علامات تبويب المتصفح، وهذا جيد إذا كنت تريد كل وظائف المتصفح، ولكن إذا كنت تريد موقعاً
00:00:59أكثر كفاءة مع أيقونة خاصة به في شريط المهام للفصل بين التطبيقات، فإن الحصول على تطبيق
00:01:04مستقل يمكن أن يكون مفيداً جداً. هنا يأتي دور Paik، وهو أفضل بكثير من Electron،
00:01:09لأنه مبني على أساس Towery 2، الذي يستفيد من نظام عرض الويب الأصلي، مما يجعل التطبيقات
00:01:14أصغر وأسرع وتستخدم ذاكرة أقل، على غرار طريقة عمل Electro أو Bun أو Vercel's Zero Native،
00:01:19والتي سأتحدث عنها أكثر قليلاً لاحقاً في هذا الفيديو. ولكن الكود المخصص الفعلي الذي كتبه TW93 فوق
00:01:24Towery 2 يتكون من حوالي 1800 سطر من كود Rust ويتعامل مع أمور مثل إدارة النوافذ، والقوائم الأصلية،
00:01:30وحقن JavaScript. أنت فقط تشغل أمراً واحداً ويتولى Paik كل شيء. في الواقع،
00:01:35دعونا نحاول استخدام Paik لتحويل مشروع محاكاة الأفلام الخاص بي إلى تطبيق مستقل. بعد تثبيت
00:01:40أداة Paik CLI، ستلاحظ أنها تبدو مشابهة جداً لـ Mole إذا كنت قد استخدمت Mole من قبل، ولا تحتوي على
00:01:45الكثير من الأعلام (flags)، وهو أمر جيد في رأيي. مع تشغيل خادم مشروعي، يمكنني تشغيل Paik مع
00:01:50رابط URL والاسم الذي أريد إطلاقه على التطبيق. الآن إذا ضغطت إدخال، فإنه يجلب الأيقونة ويمر بـ
00:01:55عملية إنشاء التطبيق، والتي يمكن أن تستغرق حوالي 5 إلى 10 دقائق. وبمجرد الانتهاء، ينشئ
00:02:00هذا الملف بصيغة DNG، والذي نجده هنا بحجم 4.3 ميجابايت. وإذا نقرت عليه، فإليك تطبيقنا،
00:02:05يمكننا تثبيته بسحبه إلى مجلد التطبيقات. يبدو أنه لم يجلب الأيقونة، ولكن هذا
00:02:10لا بأس. والآن إذا فتحنا تطبيقنا، يمكننا رؤية أنه يعمل فوراً مع وجود الأيقونة في شريط المهام (Dock).
00:02:14يمكنني تحديد فيديو ويبدو أن كل شيء يعمل بشكل جيد. وإذا نظرنا إلى مراقب النشاط،
00:02:19يمكننا رؤية أن تطبيقنا يستخدم فقط 61 ميجابايت من الذاكرة مقارنة بمتصفح ARC، الذي يستهلك الكثير.
00:02:24وإذا ألقينا نظرة على حجم التطبيق، فهو 55 ميجابايت مقارنة بتطبيق إلكتروني مثل Slack،
00:02:30الذي يبلغ حجمه 310 ميجابايت. ولكن كما رأيت سابقاً، يحتوي Paik على بعض الخيارات المثيرة للاهتمام. على سبيل
00:02:35المثال، يمكنني بناء نفس التطبيق باستخدام علم التصحيح (debug flag) لأتمكن من الوصول إلى أدوات المطورين. ويمكنني تعديل
00:02:40شريط الحالة لجعله يبدو أكثر كأنه تطبيق حقيقي باستخدام علم إخفاء شريط العنوان، مما يعطيه
00:02:46شريط عنوان بدون إطار. لكن من الواضح أن هذا التطبيق لم يصمم ليكون بدون إطار. لحسن الحظ، يوفر Paik
00:02:51لنا خياراً لإصلاح ذلك دون تعديل كود المصدر للتطبيق. يمكنني كتابة بعض أكواد CSS المخصصة وحقنها
00:02:56في تطبيقي باستخدام علم الحقن (inject flag)، مما أضاف مساحة في الأعلى، ولكن هذا يعني أيضاً أن هناك
00:03:01مساحة أكبر في الأسفل للتمرير. يمكننا استخدام علم إظهار أيقونة النظام (show system tray flag)، مما يكشف عن أيقونة في
00:03:06شريط النظام، مما يسمح لنا بإظهار وإخفاء تطبيقنا. ويمكننا حتى حقن JavaScript بالإضافة إلى CSS.
00:03:12ولكن في الوقت الحالي، يبدو أنه لا يمكنك تعديل عناصر القائمة التي يتم توفيرها لك افتراضياً من قبل
00:03:17Paik. كما أن Paik يعمل فقط مع روابط URL تعمل. لذا إذا أغلقت الخادم وحاولت فتح التطبيق،
00:03:23فإنه يعرض لي شاشة فارغة فقط. ولكن لكي أكون عادلاً، لم يتم تصميم Paik للتطبيقات المحلية. اختبرت فعلياً
00:03:28تطبيق YouTube Music، والذي يعمل بشكل جيد بشكل مدهش من تشغيل أمر واحد. وهو يعمل حتى في وضع عدم الاتصال
00:03:33لأن هذه هي الطريقة التي يعمل بها موقع YouTube Music. لذا كنت أستخدمه كمشغل موسيقى رئيسي،
00:03:38ولكنه ليس الأداة المناسبة لتطبيقات سطح المكتب التي تملكها بنفسك لأن Paik يغلف رابطاً مباشراً
00:03:42ولا يحزم الكود الخاص بك إلا إذا استخدمت خيار الملف المحلي، وهو ما اكتشفته فقط
00:03:48بعد إنشاء هذا الفيديو. كما أنني لن أقول إنه مبني بشكل جيد جداً. استمعوا إلي. لقد قمت بتثبيت Paik
00:03:53باستخدام BUN بدلاً من PNPM أو NPM، لكنه يحتاج إلى أحدهما داخلياً لإعداد بناء Tauri.
00:04:00وكان إصدار PNPM لدي أحدث من الإصدار الذي يتطلبه، مما يعني أنه رفض البناء
00:04:05وتثبيت التطبيق الذي أردته. لذلك اضطررت إلى استخدام Claude Code لتعديل كود مصدر Paik فقط لجعله يعمل.
00:04:11لقد انتهى بي الأمر بالعثور على مشكلة برمجية (issue) تتعلق بهذا، ولكن كان من الممكن حل كل هذا لو أن Paik تم شحنه بـ
00:04:15ملف ثنائي مترجم (compiled binary)، وهي ميزة استخدام شيء مثل ElectroBUN أو ZeroNative،
00:04:20لأن ElectroBUN يمنحك بيئة تشغيل BUN حقيقية خلف عرض الويب، مما يعني أنه يمكنك تشغيل منطق خلفي
00:04:25و ZeroNative يذهب إلى أبعد من ذلك، مما يمنحك غلاف Zig كاملاً يمكنه استدعاء مكتبات C مباشرة.
00:04:31لذا فإن Paik هو أسرع طريقة لتغليف موقع إلكتروني مباشر، ولكن إذا كنت بحاجة إلى أي شيء يتجاوز ذلك،
00:04:36فمن الأفضل اللجوء إلى شيء آخر.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video