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
// 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.