كم مرة واجهت هذا الموقف: أطلقت تطبيقك على Google Play أو App Store، وبعد ساعات فقط اكتشفت خطأ صغير — ربما سطر واحد في الكود — لكنه كفيل بإرباك المستخدمين؟
تبدأ رحلة الإصدار من جديد: بناء نسخة جديدة، رفعها للمتجر، انتظار المراجعة (التي قد تُرفض لأسباب غير منطقية أحياناً)، ثم انتظار المستخدمين لتحديث التطبيق يدويًا.
لكن تخيّل لو كان بإمكانك إصلاح الخطأ فوراً — بدون انتظار، وبدون رفع نسخة جديدة؟
هنا يأتي دور Shorebird.
Shorebird هي أداة مفتوحة المصدر من فريق سابق في Flutter تسمح بتحديث كود Dart لتطبيقك بعد نشره على المتجر، بدون رفع إصدار جديد.
تُعرف هذه التقنية باسم Code Push أو Over-The-Air Updates (OTA)، أي إرسال التحديثات “عبر الهواء” مباشرة إلى المستخدمين.
ببساطة، يمكنك:
يرى المستخدم التغيير عند إعادة تشغيل التطبيق، دون الحاجة إلى تحميل نسخة جديدة من المتجر.
الموقع الرسمي: https://shorebird.dev
الوثائق التفصيلية: https://docs.shorebird.dev
Shorebird تعتمد على فكرة بسيطة:
بهذا الشكل، لا تحتاج إلى رفع APK أو IPA جديد، فقط ترسل التغيير عبر Shorebird.
1. التثبيت
افتح Terminal وشغّل:
dart pub global activate shorebird_cli
أو باستخدام brew (على macOS):
brew install shorebird
ثم سجّل الدخول:
shorebird login
2. تهيئة المشروع
داخل مجلد مشروع Flutter:
shorebird init
سيُنشئ هذا ملف shorebird.yaml يربط تطبيقك بخدمة Shorebird.
3. إصدار النسخة الأولى (Release)
قبل رفع التطبيق إلى Play Store أو App Store:
shorebird release android
# أو
shorebird release ios
هذا الأمر يبني نسخة الإنتاج ويرفعها إلى Shorebird مع رقم release خاص.
4. رفع Patch لاحق (تحديث فوري)
بعد اكتشاف bug أو تعديل بسيط، نفّذ:
shorebird patch android
# أو
shorebird patch ios
سيقوم Shorebird بمقارنة الكود الحالي مع الكود السابق ورفع التغيير مباشرةً.
خلال ثوانٍ… سيحصل المستخدمون على التحديث فور إعادة فتح التطبيق ✨
أضف حزمة shorebird_code_push في pubspec.yaml:
dependencies: shorebird_code_push: ^1.0.0
ثم استدعها في main.dart:
import 'package:shorebird_code_push/shorebird_code_push.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await ShorebirdCodePush().checkForUpdate();
runApp(MyApp());
}بهذا يتحقق التطبيق عند التشغيل من وجود تحديث ويقوم بتنزيله في الخلفية.
افترض أن لديك تطبيقاً يحتوي على رسالة ترحيب:
Text('Welcome to my app!');بعد الإصدار اكتشفت خطأ مطبعي وتريد تصحيحه إلى:
Text('Welcome to my awesome app!');بدلاً من رفع إصدار جديد للمتجر، يمكنك ببساطة تنفيذ:
shorebird patch android
خلال لحظات، كل المستخدمين سيشاهدون الرسالة الجديدة بعد إعادة فتح التطبيق 🔥
يمكنك دمج Shorebird مع خطوط CI مثل GitHub Actions:
- name: Release with Shorebird run: | shorebird release android - name: Patch hotfix run: | shorebird patch android
بهذا يصبح نشر bug fix تلقائياً فور الدمج إلى main branch.