D
DevOps & CI/CDHard40 XP4 min read

How do you handle over-the-air (OTA) updates in Flutter?

TL;DR: Flutter doesn't natively support OTA updates (unlike React Native's CodePush). Shorebird is the Flutter-specific OTA solution — it patches compiled Dart code without a new app store release. Limited to Dart changes (no new native code or plugins).

Full Answer

OTA updates let you push bug fixes without going through the 1-2 day App Store review cycle. React Native had Microsoft CodePush for years; Flutter got Shorebird in 2023.

Shorebird

Shorebird replaces the Dart AOT engine with an interpreter that can receive Dart bytecode patches. Your first release includes the Shorebird engine; subsequent patches only send changed Dart code.

Limitations

  • Dart code changes only — cannot change native code (Android/iOS) or add new plugins
  • App Store Terms: Apple allows code downloads if it doesn't change core app behavior
  • Paid service: Shorebird has a free tier with limited patch count
🎯

For critical bugs in a Flutter Web app, you don't need OTA — just redeploy. OTA is most valuable for mobile apps where store review delays cost real money.

Code Examples

shellShorebird workflow
Output
// Initial release: includes Shorebird engine (~4MB overhead)
// Patch: only changed Dart bytecode (~50KB typical)
// Rollback: instant — push previous patch version
// Zero App Store review delay for bug fixes

Common Mistakes

  • Using Shorebird for feature additions — only bug fixes maintain App Store compliance; new features should go through review
  • Patching native code changes via Shorebird — impossible, only Dart code can be patched

Interview Tip

💡

Shorebird shows Flutter closing the gap with React Native. Mention the App Store compliance nuance: patches must be bug fixes, not new functionality, per Apple guidelines.

#OTA#CodePush#shorebird#updates#hot-update