App Development Basics: Upgrading your users to the latest app version

Anuj mody
WorkIndia.in
Published in
4 min readFeb 1, 2020

On the internet, you will get 100s of links on what you need to do before you start developing Apps. So I won’t mention all the things instead I will mention ONE thing which generally no one mentions.

The case we fail to consider:

Let’s assume you have developed the first version of your awesome app which is downloaded by thousands of users across the globe. Now obviously there will be some bugs and new features that you will roll out as App updates. Suppose there was a bug in Version 1 which you just fixed and rolled out Version 2 to Play Store or AppStore. The case we fail to consider is:

What if users don’t update the app on their phones?

You’ll have to pray that most of your users have “Auto-Update Apps” turned on (which they won’t have). Or wait and watch as your users stay stuck on version 1 forever until they manually update your app. They’ll either not know an update is available or they won’t bother to update your app even if they find out.

Our experience:

We are developing our app on the React-Native platform — WorkIndia for Recruiters. We had launched our first version in September 2019. After that, there where many iterations and fixes.

Specifically, Version 54 had several issues related to Push Notifications. Due to some issues in implementation, users were not receiving notifications through FCM (Firebase Cloud Messaging). And in some cases, the app would crash too. So we added a fix for it and released a new version on Play Store. Hoping users will update the app, our delivery rate of push notifications will improve and crashes will disappear.

We waited a few weeks after release but found out that there were still crashes related to notifications and our delivery rate was still poor.

That’s when we realized to check “How many users have updated the app version?“

And of course, and we found out a lot of our users were still on older app versions which had issues:

Percentage of users on different versions

As you can see Almost 50% of users were still on older app versions which had issues!

The solution and the paradox:

The solution was for us to add the “Update App“ dialog. Which will prompt the user “Please update the app to continue using“ whenever they open it next and take them to the Play Store for the update.

However, we were in a hilarious deadlock:

  1. We want to get users to update the app
  2. For that, we need to show them the Update dialog
  3. But older app versions don’t have the Update dialog!
  4. For us to even show the dialog, they’ll need to update their app
  5. But users are not updating their app is where the whole problem started

The saving grace:

Thankfully, we use React Native to develop the app, and we can push an update to users via Code Push. With the help of Code Push, we can update the app on the fly without the user even knowing it — even if they don’t update the app from Play Store.

However, in between if a Native Android Release is done, by default CodePush will only push changes on top of the last Android Release.

But our users were stuck on versions that were 3–4 Android Releases behind!

So, for every Android Release version which had significant no. of users we had to:

  1. Check out the old code Branch that was released in those Android Releases
  2. Add the “Update App” dialog code to that branch
  3. Do a Code Push so that users on that version will receive the changes
  4. Repeat this for all such versions

Once these changes were pushed, thankfully we started seeing users migrating to newer versions and our initial problems of push notification delivery started to diminish.

The learning:

If we had thought of adding a “Force Update App” dialog functionality right in the beginning, this entire effort of Code Pushing to past versions, and time lost in the process could have been avoided.

Long story short:

Right from the beginning, add functionality in your app to request (or force) your user to Update the App if their app version is outdated.

--

--