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 ?

Photo by Dmitriy Be / Unsplash

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 :

Integrate CodePush with React Native for Over the Air App update
CodePush is an App Center cloud service that enables Cordova and React Native developers to deploy mobile app updates directly to their users’ devices. So we will talking about how do we update the…

Understand RN OTA-updates :

Understanding React Native Deployments
If you’re coming to React Native from a web background, or if you’re new to programming in general, you may be confused about what you can and can’t do with your deployed React Native app. When can…

For Nativescript (Angular/Vue):

Enable Live Updates of Your iOS and Android Apps Using NativeScript AppSync
In the recent NativeScript 6.0 release, we announced a new beta service called NativeScript AppSync, which allows you to update NativeScript-built iOS and Android apps without using the App Store or Google Play. In this article we’ll look at how it all works.

For Hybrid apps (apps built with HTML/CSS) :

Ionic :

Deploy a Live Update - Ionic Appflow Documentation
Ionic is the app platform for web developers. Build amazing mobile, web, and desktop apps all with one shared code base and open web standards
Ionic Appflow: Accessible Mobile DevOps for All
Ionic Appflow is a powerful suite of tools, services, and automation that streamlines agile development to help teams focus on building apps, while we take care of the rest.

For Flutter (Dart/Google) :

Building an in-app updater (OTA) in Flutter
You can do more than you think in Dart with Flutter. In many ways it’s better not to immediately reach for platform channels to solve a problem.

For Android (Java/Kotlin/Android SDK) :

It's slightly more difficult to configure over-the-air updates in native android and iOS apps :/

Update android application using OTA
I am having my own apps store where all android applications are hosted. Some apps are modified. So How i can send updates to clients/users using OTA. So clients will come to know about new updates...

For iOS Native apps (Swift/Apple) :

Updating Users to the Latest Version of Your iOS App
When an emergency arises, it can be beneficial to have a mechanism in place to gently transition users to the latest app update. However, such a mechanism might require a backend solution to let app…