Shorebird وحقبة التحديثات اللحظية في تطبيقات Flutter – كل ما تحتاج معرفته

تخيل أنك اكتشفت خطأً في واجهة تطبيقك بعد إطلاقه. في السابق، كان عليك المرور بمراحل طويلة من التحديث والانتظار لكن الآن مع Shorebird، يمكنك إصلاح الأخطاء وإضافة ميزات جديدة في دقائق!

  • سرعة فائقة: تحديثات لحظية دون الحاجة لإعادة النشر.
  • مرونة كاملة: تحكم كامل في التحديثات دون قيود المتاجر.
  • تجربة مستخدم سلسة: لا حاجة لإغلاق التطبيق أو تنزيل إصدار جديد.

وللحديث أكثر عن هذه الأداة

الفهرس:

محاور الجلسة:

CodePush: التحديثات السريعة لتطبيقك!

تخيل أنك استخدمت تطبيقًا على هاتفك، وفجأة ظهرت ميزة جديدة أو تم إصلاح مشكلة بسيطة، بدون أن تضطر لتحميل تحديث جديد من المتجر! هذا هو بالضبط ما تفعله تقنية CodePush. ببساطة هي طريقة تسمح للمطورين بإرسال تحديثات صغيرة للتطبيق (مثل تغييرات في الشكل أو إصلاحات بسيطة) مباشرة إلى هاتفك عبر الإنترنت.

JIT (Just-in-Time Compilation)

  • عندما يقوم المطور بإنشاء تطبيق، يكتب الكود بلغة يفهمها هو، ولكن الكمبيوتر يحتاج إلى ترجمة هذا الكود إلى لغة يفهمها.
  • JIT هي طريقة للترجمة تحدث “أثناء التشغيل” (Just-in-Time). بمعنى آخر، يتم ترجمة الكود إلى لغة الكمبيوتر في نفس الوقت الذي يتم فيه تشغيل التطبيق.
  • متى نستخدمها؟ غالبًا ما تستخدم هذه الطريقة أثناء عملية تطوير التطبيق (عندما يقوم المطور بتجربة التطبيق على جهازه) لأنها تجعل عملية التجربة أسرع.
  • فكر بها كأنك تتحدث مع شخص بلغة مختلفة، وهناك مترجم فوري يترجم كلامك له في نفس اللحظة.

AOT (Ahead-of-Time Compilation)

  • على عكس JIT، فإن AOT تقوم بترجمة الكود “مسبقًا” (Ahead-of-Time)، قبل أن يتم تشغيل التطبيق.
  • كيف يعمل؟ يتم ترجمة الكود إلى ملفات خاصة يفهمها نظام التشغيل الخاص بالهاتف (مثل ملفات .so في Android أو .framework في iOS).
  • متى نستخدمها؟ هذه هي الطريقة الأساسية التي يستخدمها Flutter عند نشر التطبيق في المتاجر (مثل Google Play أو Apple App Store).
  • فكر بها كأنك تكتب رسالة مترجمة بالكامل قبل أن ترسلها، حتى يتمكن الشخص الآخر من قراءتها بسهولة.
  • مهم جدًا: هذه الطريقة تجعل التطبيق يعمل بشكل أسرع وأكثر سلاسة عند تشغيله على هاتف المستخدم..

لماذا لا يوجد CodePush بشكل افتراضي؟

  • مخاوف أمنية
    متجر التطبيقات وجوجل بلاي يحرصان على ضمان ثقة وأمان عاليين، بخلاف المواقع غير المتوقعة.
  • طبيعة Dart
    لغة دارت، المستخدمة بواسطة فلاتر، لديها بيئة تشغيل مختلفة مقارنة بجافاسكربت، مما يجعل من الصعب تنفيذ نظام مشابه لـ CodePush بشكل أصلي.

عندما يستخدم المطور Shorebird، تكون الفكرة الأساسية هي تحديث التطبيقات المنشورة دون الحاجة لإعادة رفع نسخة كاملة جديدة لكل متجر تطبيقات. يتم ذلك عن طريق إرسال تصحيحات صغيرة (patches) يتم تحميلها مباشرة على أجهزة المستخدمين.
تمر العملية بعدة مراحل:

  • أولًا، يقوم المطور برفع نسخة جديدة أو تحديث للتطبيق إلى نظام Shorebird.
  • يقوم Shorebird بجلب ملف التطبيق الأساسي مثل ملف aab أو ملف الأرشيف (حسب النظام – أندرويد أو iOS).
  • يتم بناء التصحيحات المطلوبة باستخدام Flutter SDK، وهي البيئة التي تعتمد عليها التطبيقات المبنية بفلاتر.
  • يتم جلب نسخة الإصدار الرسمية للتأكد من أن التصحيحات تطابق النسخة الحالية عند المستخدمين.
  • في حالة نظام iOS، يجب ربط ملفات AOT (Ahead-Of-Time compiled files) لأن iOS لا يسمح بتفسير الشيفرة البرمجية في وقت التشغيل (runtime)، مما يتطلب إعداد ملفات جاهزة مسبقًا.
  • وأخيرًا، يتم إنشاء ملف التصحيح (patch artifact) وهو الملف الذي يحتوي على التغييرات فقط، ليتم إرساله إلى الأجهزة دون الحاجة لإعادة تحميل التطبيق كاملًا.
  1. جلب ملف aab أو ملف الأرشيف
    (Fetching aab/archive artifact)
  2. بناء التصحيح باستخدام Flutter SDK
    (Building patch with Flutter SDK)
  3. جلب ملف الإصدار الرسمي
    (Fetching release artifact)
  4. ربط ملفات AOT خاص بـ iOS فقط
    (Linking AOT files – only iOS)
  5. إنشاء ملف التصحيح النهائي
    (Creating patch artifact)
  • الكود الأصلي (Native Code)
     Shorebird  يركز بشكل رئيسي على تحديث كود Dart فقط، ولا يستطيع تعديل أو تحديث مكونات الكود الأصلي (Native Components) داخل التطبيق يعني أي جزء من التطبيق مكتوب بلغة أصلية مثل Java/Kotlin لأندرويد أو Swiftلـ iOS لن يتمكن Shorebird من تغييره. فقط كود Dart الكود الذي تكتبه باستخدام Flutter هو الذي يمكن تحديثه.
  • الملفات والمصادر (Assets)
    لا يمكن تحديث الملفات مثل الصور، الخطوط، ملفات JSON، أو أي ملفات ثابتة أخرى عبر Shorebird. إلا إذا قمت بتخزين هذه الملفات على خادم خارجي (hosting externally) وجعل التطبيق يقوم بتحميلها وقت التشغيل (runtime). أي إذا قمت بتضمين أصول (Assets) مباشرةً مع التطبيق، فلن يتمكن Shorebird من تحديثها بعد نشر التطبيق. لتحديثها، تحتاج إلى استضافة الملفات على سيرفر خاص وسحبها أثناء تشغيل التطبيق.

  إصلاح سريع للأخطاء المرئية: تخلص من المشاكل الصغيرة في شكل التطبيق مباشرة دون الحاجة لانتظار مراجعة متجر التطبيقات.

تغييرات ديناميكية فورية: عدّل معلومات مثل الأسعار أو العروض الخاصة في لحظتها دون الحاجة لتحديث التطبيق بالكامل.

اختبار الميزات بسهولة: جرب نسخًا مختلفة من الميزات على مجموعات صغيرة من المستخدمين قبل إطلاقها للجميع.

دعم لغوي مؤقت: أضف لغات لفترة محددة دون تكبير حجم التطبيق بإصدار كامل لكل لغة.

  • هل Shorebird مجاني للاستخدام؟

ليس مجاني بالكامل بل يوجد اشتراكات مدفوعة.

كيف يؤثر على حجم التطبيق؟

يزيد حجم التطبيق ببضعة ميغابايتات فقط.

ماذا يحدث إذا فشل التحديث؟

يتجاهل التحديث الفاشل ويشغل النسخة القديمة بدون مشاكل.

ما هي الإجراءات الأمنية المتخذة؟

يستخدم توقيع رقمي للتحديثات واتصال HTTPS لضمان الأمان.

كيف تتم مقارنة Shorebird بحزم flutter_eval و ffw؟

Shorebird أقوى وأأمن للتحديثات، بينما flutter_eval و ffw مناسبين لتعديلات ديناميكية أو تطوير سريع.

1 تحديثات فورية : يسمح Shorebird للمطورين بدفع التحديثات للمستخدمين دون الحاجة إلى موافقة متجر التطبيقات، مما يوفر الوقت ويعزز الاستجابة.

2 سير عمل فعال : من خلال تمكين التحديثات عبر الأثير، يقلل Shorebird من الحاجة إلى إصدارات متكررة للتطبيق، مما يبسط عملية التطوير.

3 تجربة مستخدم محسّنة : يمكن للمطورين إصلاح الأخطاء وإضافة الميزات بسرعة، مما يوفر للمستخدمين تجربة أكثر سلاسة وحداثة.

4 تأمين تطبيقاتك للمستقبل : باستخدام Shorebird، يمكن للمطورين ضمان بقاء تطبيقاتهم مرنة وقابلة للتكيف مع التغييرات المستقبلية دون تحديثات معقدة.

الختام:

أخيراً، فإن “Shorebird” لا يعد مجرد أداة أخرى في صندوق أدوات المطور، بل هو بمثابة نقلة نوعية في كيفية إدارة وتطوير التطبيقات. إنه يمثل مستقبل التحديثات السلسة وتجربة المستخدم المتطورة، مما يمنح المطورين القدرة على البقاء في الطليعة في هذا المشهد التنافسي. استكشاف “Shorebird” ليس مجرد خيار، بل هو خطوة استراتيجية نحو بناء تطبيقات أكثر مرونة واستجابة ونجاحًا على المدى الطويل.

روابط ذات صلة

ألبوم الصور


اكتشاف المزيد من Mobile Dev Meetup

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك رد