הטמעת Shorebird לעדכוני אפליקציות Flutter
תארו לעצמכם שאתם משחררים באג קריטי באפליקציית Flutter שלכם. בדיקת App Store אורכת 48 שעות. משתמשים קורסים, ואתם לא יכולים לדחוף תיקון במהירות. Shorebird פותר את זה תוך דקות — ללא בדיקה חוזרת. שילבנו את Shorebird ביותר מ-15 פרויקטים, חלקם מטפלים ביותר מ-50,000 משתמשים פעילים חודשיים, ואנחנו מבטיחים יציבות.
ל-Flutter לא היה אנלוגי ל-React Native CodePush — עד ש-Shorebird הגיע. קוד Dart מהדר להוראות native שלא ניתן להחליף עם bundle של JS. Shorebird פתר זאת באמצעות runtime מותאם אישית של Dart עם תמיכה ב-patches: שינויים בקוד Dart נארזים ל-diff קומפקטי (10–100 KB) ונטענים במכשיר ללא בדיקת חנות.
איך Shorebird מעדכן קוד Dart ללא בדיקה חוזרת?
Shorebird מטמיע Dart VM שונה בתוך האפליקציה. בעת ההפעלה, ה-VM בודק אם קיים patch בשרתי Shorebird. אם קיים, הוא מוריד ומחיל אותו. ה-patch מכיל רק אובייקטי Dart ששונו, לא את כל ה-bundle. זה שונה מהותית מ-CodePush: זה משנה קוד Dart מהודר, לא JS מתורגם.
מה ניתן ומה לא ניתן לעדכן דרך Shorebird
ניתן לעדכן:
- כל קוד Dart/Flutter
- תלותי Dart (חבילות pub) אם הם Dart טהור
לא ניתן לעדכן:
- תוספים native (ערוצי פלטפורמה עם קוד Kotlin/Swift)
- נכסים (תמונות, גופנים) — עדיין לא נתמך
- שינויים ב-AndroidManifest.xml / Info.plist
למה Shorebird עדיף על CodePush?
Shorebird עוקף את CodePush בגודל patch פי 10 — במקום bundle JS שלם (1–5 MB), אתם שולחים diff (10–100 KB). בנוסף, Shorebird עובד ברמת Dart VM, ומספק אינטגרציה עמוקה יותר עם מערכת האקולוגית של Flutter. בניגוד ל-CodePush, Shorebird אינו דורש interpreter — patches מוחלים על קוד מהודר.
| קריטריון | Shorebird | CodePush | עדכון חנות רגיל |
|---|---|---|---|
| גודל patch | 10–100 KB | 1–5 MB | Bundle מלא (30–100 MB) |
| זמן אספקה | שניות | דקות | שעות (בדיקה) |
| תמיכה ב-Flutter | כן | לא | כן |
| נדרשת בדיקה | לא | לא | כן |
טבלת זמן ועלות נוספת:
| שיטה | זמן עד למשתמשים | עלות תמיכה |
|---|---|---|
| Shorebird | 1–2 שניות | מינימלית (patches) |
| CodePush | 1–5 דקות | בינונית (bundles) |
| עדכון חנות | 24–72 שעות | גבוהה (שחרור מלא) |
התקנה ושחרור ראשון
# Установка CLI
curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/shorebird/main/install.sh -sSf | bash
# Инициализация в проекте
shorebird init
# Первый релиз (полная сборка + загрузка в Shorebird)
shorebird release android
shorebird release iosלאחר # Установка CLI curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/shorebird/main/install.sh -sSf | bash # Инициализация в проекте shorebird init # Первый релиз (полная сборка + загрузка в Shorebird) shorebird release android shorebird release ios , קובץ shorebird init עם shorebird.yaml מופיע בפרויקט. קובץ זה נשמר במאגר.
שחרור Shorebird הוא build מלא של האפליקציה. ה-artifact שמועלה ל-Play Store / App Store חייב להכיל את ה-Shorebird runtime.
יצירת Patch
# Патч для Android
shorebird patch android --release-version 1.2.3+42
# Патч для iOS
shorebird patch ios --release-version 1.2.3+42app_id — הגרסה שעליה יחול ה-patch. משתמשים בגרסה 1.2.3+42 יקבלו את ה-patch אוטומטית בהפעלה הבאה.
אינטגרציית CI/CD
# .github/workflows/shorebird-patch.yml
name: Shorebird Patch
on:
push:
branches: [hotfix/*]
jobs:
patch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.x'
- uses: shorebirdtech/setup-shorebird@v1
with:
cache: true
- name: Create patch
run: |
shorebird patch android \
--release-version ${{ inputs.release_version }}
env:
SHOREBIRD_TOKEN: ${{ secrets.SHOREBIRD_TOKEN }}# Патч для Android shorebird patch android --release-version 1.2.3+42 # Патч для iOS shorebird patch ios --release-version 1.2.3+42 נוצר באמצעות --release-version — בדומה ל-# .github/workflows/shorebird-patch.yml name: Shorebird Patch on: push: branches: [hotfix/*] jobs: patch: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: flutter-version: '3.x' - uses: shorebirdtech/setup-shorebird@v1 with: cache: true - name: Create patch run: | shorebird patch android \ --release-version ${{ inputs.release_version }} env: SHOREBIRD_TOKEN: ${{ secrets.SHOREBIRD_TOKEN }} של Fastlane.
ניטור וחזרה לגרסה קודמת
קונסולת Shorebird מספקת סטטיסטיקות patch: אחוז המכשירים שקיבלו את ה-patch, שיעור קריסות לאחר היישום. חזרה לגרסה קודמת: SHOREBIRD_TOKEN — Shorebird מפסיק לשרת את ה-patch למכשירים חדשים, מכשירים שכבר עודכנו יקבלו את הגרסה הקודמת בהפעלה הבאה.
מה כלול בעבודה
אנחנו מבצעים את מחזור ההטמעה המלא של Shorebird:
- בדיקת תלותי Flutter לתאימות (רכיבים native, נכסים)
- אינטגרציית Shorebird SDK והגדרת
shorebird login:ci - שחרור ראשון דרך Shorebird (במקום
firebase login:ciהרגיל) - הגדרת CI/CD ל-patches אוטומטיים
- בדיקת אספקת patches במכשירים
- הטמעת נהלי ניטור וחזרה לגרסה קודמת
- תיעוד והדרכת צוות
הניסיון שלנו: 5 שנים בפיתוח Flutter, יותר מ-50 פרויקטים שהושלמו, מפתחי Flutter מוסמכים. אנחנו מבטיחים פעילות יציבה של Shorebird בסביבת production.
לוחות זמנים ועלות
זמן הטמעה — בין 2 ל-3 ימים תלוי במורכבות הפרויקט. העלות מחושבת באופן אישי לאחר בדיקה — צרו קשר להערכה. אנחנו מציעים גם תמיכה לאחר שחרור וייעוץ לאופטימיזציה של patches.
לאפליקציות עם דרישות אבטחה מחמירות במיוחד (פיננסיות, רפואיות), יש לבדוק את מדיניות הפלטפורמות: לפי סעיף 3.3.2 בהנחיות בדיקת App Store, הורדת קוד בר-הרצה דרך interpreter אסורה, אבל Shorebird טוען ש-patches אינם קוד חדש אלא שינויים של קוד קיים. אנחנו עוזרים לתאם זאת עם הבודקים.
קבלו ייעוץ Shorebird — כתבו לנו, נעריך את הפרויקט שלכם ונציע את הפתרון הטוב ביותר.







