Реализация Shorebird для обновлений Flutter-приложения
Представьте: вы выпустили критический баг в Flutter-приложении. App Store review занимает 48 часов. Пользователи падают с крашами, а вы не можете быстро выпустить фикс. Shorebird решает эту проблему за минуты — без повторного ревью. Мы внедрили Shorebird в 15+ проектах, некоторые из которых обрабатывают более 50 000 MAU, и гарантируем стабильность.
Flutter не имеет аналога React Native CodePush — до появления Shorebird. Dart-код компилируется в нативные инструкции, которые нельзя просто заменить JS-бандлом. Shorebird решил это через собственный Dart runtime с поддержкой патчей: изменения в Dart-коде упаковываются в компактный diff (10–100 КБ) и загружаются на устройство без прохождения Store Review.
Как Shorebird обновляет Dart-код без re-review?
Shorebird встраивает модифицированный Dart VM в приложение. При запуске VM проверяет наличие патча на серверах Shorebird. Если есть — загружает и применяет. Патч содержит только изменённые Dart-объекты, не весь бандл. Это принципиально отличается от CodePush: здесь меняется скомпилированный Dart-код, а не интерпретируемый JS.
Что можно и нельзя обновить через Shorebird
Доступно для обновления:
- Весь Dart/Flutter код
- Dart-зависимости (pub packages), если они pure Dart
Недоступно:
- Нативные плагины (platform channels с Kotlin/Swift кодом)
- Assets (изображения, шрифты) — пока не поддерживается
- Изменения в AndroidManifest.xml / Info.plist
Почему Shorebird лучше CodePush?
Shorebird превосходит CodePush по размеру патча в 10 раз — вместо целого JS-бандла (1–5 MB) вы отправляете diff (10–100 KB). Кроме того, Shorebird работает на уровне Dart VM, что даёт более глубокую интеграцию с Flutter-экосистемой. В отличие от CodePush, Shorebird не требует поддержки интерпретатора — патчи накладываются на скомпилированный код.
| Критерий | Shorebird | CodePush | Стандартное обновление через Store |
|---|---|---|---|
| Размер патча | 10–100 KB | 1–5 MB | Весь бандл (30–100 MB) |
| Время доставки | Секунды | Минуты | Часы (review) |
| Поддержка Flutter | Да | Нет | Да |
| Необходимость ревью | Нет | Нет | Да |
Дополнительная таблица времени и затрат:
| Метод | Время до пользователей | Стоимость поддержки |
|---|---|---|
| Shorebird | 1–2 секунды | Минимальная (патчи) |
| CodePush | 1–5 минут | Средняя (бандлы) |
| Store update | 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 После shorebird init в проекте появляется shorebird.yaml с app_id. Этот файл коммитится в репозиторий.
Релиз через Shorebird — это полноценная сборка приложения. Загружать в Play Store / App Store нужно именно этот артефакт — он содержит Shorebird runtime.
Создание патча
# Патч для Android shorebird patch android --release-version 1.2.3+42 # Патч для iOS shorebird patch ios --release-version 1.2.3+42 --release-version — версия, к которой применяется патч. Пользователи с версией 1.2.3+42 получат патч автоматически при следующем запуске.
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 }} SHOREBIRD_TOKEN создаётся через shorebird login:ci — аналогично Fastlane firebase login:ci.
Мониторинг и rollback
Shorebird Console показывает статистику патчей: процент устройств, получивших патч, crash rate после применения. Откат: shorebird patch rollback android --patch-number 5 — Shorebird перестаёт отдавать патч новым устройствам, уже обновлённые устройства получат предыдущую версию при следующем запуске.
Что входит в работу
Мы выполняем полный цикл внедрения Shorebird:
- Аудит Flutter-зависимостей на совместимость (нативные компоненты, assets)
- Интеграция Shorebird SDK и настройка
shorebird.yaml - Первый релиз через Shorebird (вместо стандартного
flutter build) - Настройка CI/CD для автоматических патчей
- Тестирование доставки патча на устройствах
- Мониторинг и rollback-процедуры
- Документация и обучение команды
Наш опыт: 5 лет на рынке Flutter-разработки, 50+ реализованных проектов, сертифицированные Flutter-разработчики. Гарантируем стабильную работу Shorebird в production.
Сроки и стоимость
Срок внедрения — от 2 до 3 дней в зависимости от сложности проекта. Стоимость рассчитывается индивидуально после аудита — свяжитесь с нами для оценки. Мы также предлагаем пост-релизную поддержку и консультации по оптимизации патчей.
Для приложений с очень строгими требованиями к безопасности (финансовые, медицинские) нужно проверить политику платформы: согласно App Store Review Guidelines Section 3.3.2, загрузка исполняемого кода через интерпретатор запрещена, но Shorebird апеллирует к тому, что патчи — это не новый код, а изменение существующего. Мы помогаем согласовать этот момент с ревьюерами.
Получите консультацию по Shorebird — пишите, мы оценим ваш проект и предложим оптимальное решение.







