How to support older versions of your mobile app?
Updating your application regularly is the key to staying competitive on the mobile app market. This applies to both Apple App Store and Google Play Store. However, do we also think about the users using the previous app version?
On the one hand, you try to give the best experience to users by frequent app updates but on the other hand, there are a lot of users who do not update the app for a long time.
I want to show you how to properly take care of the user in terms of mobile app versions, and how to make the user excited about the new app release.
App Version Analytics
To know the scale of the problem, first, we have to track what versions the audience uses most. In this way, we will reach a perspective to find out which app version is still used, and how many old app versions we should support. The easiest way to collect this data is by using Google Analytics.
The above graph is an example of App Version analytics. It shows data from one of the apps we’ve created at FiveDotTwelve. As you can see, many users still hold the latest 2 versions of the app.
The “Shouldn’t work version” means that, to the app developers' knowledge, this version should not work as it has not been supported for a long time. However, looking into the statistics, it appears that a number of users are still using this version or simply have it on their devices. It is surprising how many people still own a version that might not even work. Sometimes it turns out that this version does work, but for the app owner this is not a good indicator, as the older version may simply work incorrectly and include bugs.
Backward compatibility of your app
Backward compatibility means maintaining and supporting older versions of your app. You should do it to make the product available and attractive for users who don’t update the app. No matter what reason drives them, as you could see from the analytics, there’s quite a big number of users who prefer to stick to the older version both on iOS and Android devices.
Why even care about it? Well, just because users choose not to use the latest version does not necessarily mean that they will hold back from making harsh comments about it when something does not work.
If you don't want to receive bad reviews, for example on mobile app stores, you should take an interest in the following.
How to make older versions of your app work for a long long time?
Let’s explore a couple of ways to keep your product useful and appealing for the audience also for older versions.
To be sure that the server correctly handles requests from old app versions use the API versioning pattern. This makes the mobile app send requests to the correct API versions which will work with the used app version.
Let’s say you have a Photo Edit App. The app's main feature is enabling users to upload images to the cloud and then edit it. In version 1.0.0 you upload the image directly to the host image server, and then you send a link in the request to edit that image. The app gains popularity and users request to improve the performance of image uploading. You decided to change the image quality and send the image directly in the request to your server in app version 2.0.0. Okay, and what about users from version 1.0.0? If you change the API endpoint for app version 2.0.0 then it will not work for requests from app 1.0.0 which sends links not images. That is why you have to use the API Versioning pattern. In this way, you can detect which app version the user has, and then do the right logic depending on the app version.
App Core Logic
To make the particular app version life longer, we should avoid creating a lot of logic on the mobile side. Moving the logic to the backend makes the app more flexible, and if there will be any bug in the logic we can fix it without releasing a new app. It reduces the time to fix bugs, and users might even not notice the problem.
Let’s dive into another example.
Imagine you have a multiplayer mobile racing game. The acceleration of each car is calculated on the mobile side based on the car engine and the weight of the vehicle. Unfortunately, users start complaining about the speed of the cars, it’s unrealistic. In the 2.0.0 app you want to change the algorithm for calculating acceleration, but what about users from the app 1.0.0? The problem might be really difficult to fix because it's a multiplayer game. That is why we should move as much logic as we can to the backend. That saves a lot of stress and time if something needs to be changed or fixed.
The last option is the final one which should be avoided if possible. Force update is a feature that prevents users from using unsupported app versions. How does it work? The backend has an endpoint to check the app version. The app communicates with the backend enabling the recognition of supported app versions. In case the user has a non-supported version on their device, the app will display a screen forcing the user to update the app. I recommend avoiding this solution because it’s not a good experience for the user.
In some cases, however, this solution might be necessary. For example, let’s say you have a Payment app, and your old app version contains a bug in calculating the amount of payment. In this way, the app transfers an incorrect amount of money to another account. You already fixed it in the new app version but there are still a lot of users on the older version. To avoid getting bad reviews and fixing transactions manually, you have to force users to update the app to the latest one. Users might not be happy about it, but it is still better than making incorrect money transactions.
How to engage users to update the app?
Mostly, we do think about technical solutions for users who do not update the app. But maybe there is a better way of solving the problem? Apart from adjusting your app to the users, you can also implement solutions to encourage them to download new versions!
Do you care about the new tab when you release a new version to the store?
If not, that might be a reason why few users update the app. Make them excited about downloading the new version. Make them curious about the amazing features that you implement in the software by adding the “What’s new” section in Google Play and App Store product page.
Another way to engage users is to use the social media of the app to announce new features. There are at least two benefits. One is that you make better contact with the end user and the second one is that the user would be curious about the app update. Once you manage to attract your users on social media, they should go straight to the app page in mobile app stores, see the description, get interested in what’s new, and download the app to start their new experience.
It might be difficult to keep all old versions of your app still working, but at least versions from the last couple of months should work. Try to keep a wide perspective of solutions to make your app live longer, keep in touch with the user, and engage them to update the app. Don’t forget to measure your progress with app analytics and deliver a great experience to the user.