When developing your app you actually build a version of the app that your users will download and use but when you make an update to your app and publish it to the store you are not sure if all your users will update their version of the app or not, then you have to deal with fragmentation
What fragmentation means ?
Fragmentation is when not all users have the same version of the app unlike website that actually serves the same version of the website to all users, in the mobile world you will have to deal with latest-version users and with users that still have that version with that bug or that legacy API that you plan to shutdown
With OTA updates all your users will automatically receive the latest version of your app, remember that Messenger UI update that occurred on your mobile without having updated the app from the store? well that was an OTA update
When to configure your app for OTA updates ?
You should configure your app to support OTA updates from day one so all versions of your app can be updated, even the legacy ones
- For testing purposes : maybe you want to test a new feature and later do a rollback or stick with the actual version
- Security issues : you know that your app must be secure and you are afraid you will deal with security bugs and you need to fix and deploy the security patch for all your users
- API updates : maybe some of your legacy apis will not longer work with users with previous versions of your apps
- You want your users to always have the latest version : maybe in a context of a online game or realtime apps all your users should have the same version so your app work properly
How to configure your app for OTA updates ?
It depends on your platform and how you built it, by the way there is some links to help you :)
For React Native Apps (iOS/Android) :
Expo Docs (the eaaasy way) : https://docs.expo.io/versions/latest/guides/configuring-ota-updates/
With Microsoft CodePush :
Understand RN OTA-updates :
For Nativescript (Angular/Vue):
For Hybrid apps (apps built with HTML/CSS) :
For Flutter (Dart/Google) :
For Android (Java/Kotlin/Android SDK) :
It's slightly more difficult to configure over-the-air updates in native android and iOS apps :/
For iOS Native apps (Swift/Apple) :