Over-the-Air (OTA) updates allow developers to push bug fixes and feature changes to live mobile apps without requiring users to manually download new versions from app stores. Traditional OTA services like Expo Updates and Code Push require users to download the entire JavaScript bundle on the first update, which can be 10-20MB or more, causing slower release times and higher bandwidth costs. Revo Push 2.0 addresses this limitation by delivering diff updates (only the changes) from the very first release, resulting in faster updates, lower bandwidth usage, and a better user experience. The implementation process involves installing Revo Push SDK, creating a base release (snapshot of the app), and then using release commands to push updates to staging or production environments.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
The BEST Way to Do Over-the-Air (OTA) Updates in React Native (2026)
Added:when you fix a bug or make some changes to your app that is already live on the app store and your users get the update within seconds. No play store or app store review needed. No asking users to manually update their app. That's what overtheair updates is all about. When it comes to overthe-air updates, there are two names you will hear the most. Expo updates and code push style services.
They work well, but both share one practical limitation. The very first time you publish an OTAA update, your users usually have to download the entire JavaScript bundle. Depending on your app size, that can easily be 10 to 20 MGB or even more. After that initial download, future updates can be smaller because only the changes called a diff are sent to the device. But here's the catch. That first download is still unavoidable. And that creates a few problems. Larger download means slower release, more bandwidth cost for you, and a worse experience for users, especially those on slower network or limited mobile data. That's where Revo push 2.0 comes in. Unlike traditional OTAA services, Revo push 2.0 can deliver diff updates right from the very first OT release using its SDK. That means users only download what has changed from day one, resulting in faster updates, lower bandwidth usage, and a better user experience. In this video, we'll be setting up River Push 2.0 in our food delivery app. And then we will make some changes and updates into our app and see how smooth and fast the updates get to our app without our users needing to do a manual update. My name is Omaralade Dev. Click the subscribe button now so you can get more interesting videos like this once we drop them. Now guys, this is the app that we're going to use Real Push 2.0 to make some updates to. So, do you remember this app, the food delivery app called Uber Chops that we built a few weeks back on this channel and so it was a a full build uh but this is the user app. We also have the rider app and the vendor app [music] and it was a very good one. So we'll be using this app today to install river push on and I'm doing over the air update with it just using river push. So let's get started with that. So the first thing we'll [music] do now is to install revo push 2.0 into our app here and we'll be asking our AI coding agent to do that.
So there are different ways to go about it. [music] Now you can read on the documentation how to do it. Now as you can see here this is the revo push documentation [music] docs.revo push.org. Now we're going to be setting it up with an AI agent and you know we are using um we are using Google's anti-gravity. You can use anyone cloud code cursor codeex gemini CLI anyone but we are using um Google anti-gravity here today. So we're going to be installing it first. We have to install the skills and we'll be using this command to install the skills. Let's go ahead and do that first before we proceed. So right here in my terminal, I'm going to put in that command npx skills add um GitHub rever skills. So I'm going to install that and once it's done installing, I'm going to um give a command to my AI agent here and it's going to install rever push for me. So let's uh select what we want here and gravity CLI. Okay. Um okay, we just click enter. Proceed with installation.
Yes. All right.
Now the skills has installed successfully as we can see here. So now let's give the command to our coding agent and it's going to do it for us.
Now today we're using Gemini flash. You can use any coding agent and it's going to install this for you very very fast.
So this is our Google anti-gravity ID and we're using Gemini flash. So let's give the command to the AI agent. Now the command we have to give to our AI agent is for our expo project. So this is going to be the command we're going to be giving. Now let's see integrate.
So this is the command we saw just now in the documentation and we're giving it to our coding agent, our AI coding agent and it's going to run this for us right now and [music] we can proceed from there. So, as you can see, it's checking up um it's checking out river push um skills and it's going to use that to work on what we ask it to work on. So guys, right now our AICS is done [music] and we are going to be running MPX expo prebu platform Android clean because we are working with Android here. So, you know, we're testing with Android here.
And if we are testing um with both Android and and iOS, or if we're doing this with both Android and iOS, we'll be running npx npx expo pre-build clean now. And we will not need to specify the um operating system we are working with.
But because we're working with Android here, we're going to do this um MPX expo prebuild platform Android clean and and that will work for us. Now the next thing we're going to do is that we need to get our um code push deployment key for our Android and use it here in the config file app.config.ts file. We need to put that there so it can work very well. So um our coding agent is running this now in the background. Once it's done uh we're going to um do a [music] test for it. So let's let's go ahead and get this key first and we'll proceed from there. Now back to app.revo push.org. So this is our revo push dashboard. Now let's create an application. So we go to applications and add an application. So the application name is going to be um Uber chops because that's the name of the app.
Um let's put this. Okay. So now we add the new app and let's click into it and get our key.
So um this is now this will be our deployment key for Android. This right here. So we can just copy this and we'll go back to our app and use it there. Let's do that. [music] Now, it's mostly advisable to add these keys into your env file, but just for the purpose of this video, we're going to be putting it here. No harm. So, let's delete some of these um since we are not using that.
And >> I can just paste [music] the key there for the Android.
>> And let's also copy the iOS key and add it here. No big deal. Let's just do that. All right, guys. Now we've added the um deployment keys for the Android and iOS. Now let's run the preview again so it can add our keys into our Android and iOS um settings. Now it needs to do that. So let's do that. You just need to tell it uh to run the preview again. So it can add the keys now to the Android build and the iOS build. So let's do that.
So run the Android prebuild since I've added the deployment keys.
Now as you can see here it's running um npx expo prebu platform Android clean.
[music] So it's going to add the keys there and we'll just um allow this. So as you can see this is expo go which we are running this app on right now. Right now before we create our APK that will use that will be on our device let's create what is called a base release.
Now so before we can use river push div update we first need to create this um base release. So [music] what is this base release? Think of it as a snapshot of your app at the moment you publish it to the play store or app store. So let's copy the command to create it.
Now this is the command we're going to be using to run our base release. So now first remember push release native uber chops which is the name of our app. Now you get the name of your app from your app.json file. Um let me close.
Now you can see here name is Uber chops inside our app.json file. So that's how we get the name. And now, how do we get the file part of our APK? So, now you can see here, if you want to get the file part of your APK, it's pretty easy.
Let's just um close this.
>> So, now you can go over to Android. Now, remember when we ran npm on Android preview, uh we got to the Android and iOS folders. This is the iOS folder here. This is the Android folder. So [music] if you want to get the file parts to your APK since we are doing this for Android. So you go to the Android folder.
Then inside there you see the app folder. You open it. Then you see the build folder. Then you'll see the outputs folder. And in output folder you see the APK folder. Inside APK folder you see release folder. And in the release folder you should see the app release. Um let me make this a little bit smaller. So you should So you should see the app release here and that's how [music] we got the um file path which we're going to use in the command we are running now to create our base release.
So let's um run this command now and see how it goes.
So the upload was successful. to successfully release an update containing this this this this directory to the staging deployment of Uber chops app. Right now, let's create our APK that we run locally on this device and not even rely on our local server. So, it it just looks like the app that um your users download from the app store.
So, that's kind of what we're going to run now. So, let's [music] do that. So, this is the command we'll be using. MPX React Native run Android mode release no packager. So, let's run this. it will create our APK for us on this Android device and then we'll be able to test um different updates uh try different updates and see how Reo push is going to update the [music] app without us needing to rebuild again. So let's just wait for this to be done. It might take a minute or two but after that we'll be able to proceed.
>> All right, so the build is done now and it's opened the app successfully. So if I click here, um I should be able to go to the home screen.
Um so I should show you this. So now this is not Expo. In fact, we're not running any uh local server here. This is the APK uh in our emulator. So um this is so this is working well. And once I click on it, it opens the app and we can just see uh the pages we have there already. So now we want to change uh a few things. So now you know we already have our app running on our Android device. So let's make some changes and then see how um Revo push allows those changes to go directly to the app after um we [music] make a release. So what changes should we do?
Um, [music] okay. So, let's change um this search screen to from this search bar and coming soon to have the just the search field at the top of it. Let's do that. And we'll tell our AI to do it for us. We're going to give the AI the command to do that for us. And so, we'll see how that change is going to come into the app [music] once we are done with it. So, let's give the command So, we're going to tell our AI to do this for us, like just have a search bar at the top of the screen. Remove all of this. And that's the change we're going to be doing. Now, once our AI does that change, it's not going to show here immediately because obviously this is an APK live on uh this device. And so, we'll have to run um a release to rever push before we can see the change right here. So let's do that. And we are getting this error. Why is that? Oh my goodness. Okay. So we are in the Android folder and that is not what we're supposed to be running this from. So cd.
Now we're in the root folder. So we can run that command again. Rever push release react uber chops android dstaging.
Okay. So now it's going to run and we're going to see our changes. Move to to river push directly. And after that we'll see the change in the app right here. So let's wait for this to be done and we'll know how to proceed from there. All right, our release is successful now. And [music] um let's uh try to reload like reopen the app to see if our changes is going to come in.
Let's see.
We are hopeful.
Um okay so this is still there and I think we should just wait a few more seconds maybe 1 minute and we will see the changes over there um right now. So you would have noticed that the base release and the regular release we did are going to staging environment but we need it to be in um the production environment. So we're going to uh write this command. Now you remember the command we wrote the other time re push release native uber chops which is the name of our app. and then uh the file paths to the APK, but this time we're adding the production to it so it can [music] go lead us to production. So, we're going to send this now and we're going to um just do that. Now, since that is done, the next thing we're going to do is that we're going to do a regular release to the production environment. So, let's do that right now.
So this is the command we'll be using to do a regular release now uh so that our changes can show on the app in production. So let's send this right now and we'll wait for it to be done and we'll proceed from there.
All right guys, so this is done now. Now let's reload the app and see if our changes are showing on the app.
>> Okay, search screen. Okay, this is good.
And we can just uh write anything here.
So this was the change we made and it's working really well. So that's good guys. Let's make one more change to test this to be sure it's working. And so now let's on the on the profile screen um let's tell the uh to change this to um your account screen uh and change this log out to sign out.
So let's do that.
All right. So, change it from log out to sign out and change it the text from user user profile to your account screen. So, we'll give our aid this command. It's going to do that for us.
Once it's done, we'll do another release and we are going to see it very very smooth. So, let's wait for it to be done.
Okay. Okay, so our AIC is done changing the text for this screen and the text for the logout button. So let's do a release and see how that works. So we're using riv push release react Uber jobs android d production. So let's do that.
Send this and we're going to see how it sends the changes over to rivo push. And remember we're still using this APK that's installed right in our device.
[music] So we're not using Expo, we're using this APK. We're going to get the um update just like this. Um whenever your app is installed on your user's device and you make a change, a fix to it, you just have to send um a release. Once you do a release, just like we were doing a release now, the update is going to come into their app directly without them having to manually click any button or go to the app store to do an update. And the user is going to be getting updates into their app without even knowing there was an update. Now you're the one that's going to give them a notice that oh we change this and change that in your app. So um this is smooth guys.
This is just so smooth and it's very fast. Within a few second or a minute of doing a release, a regular release, you get the update in the user's app. So and it works exactly the same way for the iOS devices.
>> It works exactly the same way. So once your user have their app on their phone, you use rev push also and it gets the update into the app very smooth and very fast. So now it's done here. So let's um reload this. I guess it should still uh be uh for a few seconds. But let's see uh let's restart the app and let's see if the changes are here yet. Um okay, we're still waiting. Just a few more seconds and we'll check again and we'll see it. All right, guys. So, let's um restart the app again. I believe it should have um sent the update here already.
Now, let's see. All right, your account screen and sign out. Now, guys, this only took 2 minutes. I timed it. This only took even less than 2 minutes to get here. Uh after doing a release, less than 2 minutes it got uh the uh changes got to the app uh to the APK here. So you can be giving your users um updates just like this. Now back to our Revo push dashboard. You can see our production releases here. Now this first one is the base release. Now when you have a base release, any other release you do uh after it. We have the full and [music] the patch releases. So the patch release now is the only difference the update that came [music] from this release and that is the only thing we'll be sending to the mobile app. they will receive the full release but the server is going to check for the differences and send only the patch thereby making the update get to your phone faster. So if you want to check out river push go to app.rivvil.org [music] very fast and I'll also leave a link to river push. Ah guys this has been an interesting video. Thank you so much for watching. And thank you so much for being
Related Videos

TOP 15 Data compression Interview Questions and Answers 2019 Part-2 | Data compression | Wisdom jobs
wisdomjobs
281 views•2019-06-28

CTS 158: 802.11w Management Frame Protection
ClearToSend
4K views•2019-02-04

NDSS 2019 Send Hardest Problems My Way: Probabilistic Path Prioritization for Hybrid Fuzzing
NDSSSymposium
496 views•2019-04-02

How realistic is Cities: Skylines?
CityBeautiful
159K views•2019-02-14

GUIs & TUIs: Choosing a User Interface for Your Python Project | Real Python Podcast
realpython
2K views•2025-04-04

The OSI Model - Explained by Example
hnasr
225K views•2019-05-12

Cloud Computing - Introduction
elithecomputerguy
98K views•2019-10-07

From Traveler's Dilemma to Dynamic Routing | Demystifying Networking
IITBombayJuly
5K views•2019-08-04
Trending

Playstation NO DISC/NO BUY Fight Is Over...
DavidJaffeGames
4K views•2026-07-23

Americans Confused in Australia for 17 Minutes Straight
IWrocker
17K views•2026-07-23

Bitcoin Social Interest: Dozens of us Left
benjaminjcowen
12K views•2026-07-23

Tesla Profits Plunge & SpaceX Stock Continues Fall
TheJohnJohnstonLounge
6K views•2026-07-23