Force users to have last app version in Android - android

I saw few posts about it but most of them seem to be outdated.
I have an app published in the Play Store and it has already published version codes 1 to 6.
I have found in those releases some serious bug and I published a new release with version code 7.
The new version has an in-app update to make sure in the next times that the users will update to the latest release but right now it won't make any effect on the previous releases since they didn't have this code in them. Is there a way I can make version codes 1 to 6 to download the latest version?
As long as users keep using versions 1 to 6 I can add some critical features and I need them to make this update.
Also, I use Firebase firestore/realtime database/fcm/storage/authentication. Is there a way I can do it from there? The only thing I can think of is to send cloud message for the users to update the app.
Thank you

Is there a way I can make version codes 1 to 6 to download the latest version?
No, sorry. Let your users know by whatever other communications channel(s) you established (site announcement, blog post, Twitter/Facebook/etc., email newsletter, ...).

Unfortunately, for the users who are using version codes 1 to 6, there is not much you can do. I don't know what's the logic behind your existing "in-app update" option, but if the users can skip that step, you end up having the same problem.
To solve this kind of scenario, we usually add the version of the app to the database, and each time we open the app, we check that value against the one in the app's code. If there is a match, it means that no update is required, otherwise, we "force" the user to update the app to the latest version by opening the app's page from Google Play.
Another solution might also be Android In-app updates:
When your users keep your app up to date on their devices, they can try new features, as well as benefit from performance improvements and bug fixes. Although some users enable background updates when their device is connected to an unmetered connection, other users might need to be reminded to install updates. In-app updates is a Play Core library feature that prompts active users to update your app.

Related

Add query limit to firestore from outside of client side [duplicate]

I saw few posts about it but most of them seem to be outdated.
I have an app published in the Play Store and it has already published version codes 1 to 6.
I have found in those releases some serious bug and I published a new release with version code 7.
The new version has an in-app update to make sure in the next times that the users will update to the latest release but right now it won't make any effect on the previous releases since they didn't have this code in them. Is there a way I can make version codes 1 to 6 to download the latest version?
As long as users keep using versions 1 to 6 I can add some critical features and I need them to make this update.
Also, I use Firebase firestore/realtime database/fcm/storage/authentication. Is there a way I can do it from there? The only thing I can think of is to send cloud message for the users to update the app.
Thank you
Is there a way I can make version codes 1 to 6 to download the latest version?
No, sorry. Let your users know by whatever other communications channel(s) you established (site announcement, blog post, Twitter/Facebook/etc., email newsletter, ...).
Unfortunately, for the users who are using version codes 1 to 6, there is not much you can do. I don't know what's the logic behind your existing "in-app update" option, but if the users can skip that step, you end up having the same problem.
To solve this kind of scenario, we usually add the version of the app to the database, and each time we open the app, we check that value against the one in the app's code. If there is a match, it means that no update is required, otherwise, we "force" the user to update the app to the latest version by opening the app's page from Google Play.
Another solution might also be Android In-app updates:
When your users keep your app up to date on their devices, they can try new features, as well as benefit from performance improvements and bug fixes. Although some users enable background updates when their device is connected to an unmetered connection, other users might need to be reminded to install updates. In-app updates is a Play Core library feature that prompts active users to update your app.

Managing app version when publish to google play

I'm about to publish my first app on google play and I'm a little bit lost on how to manage my app version. I have my frontend app written with react native and I have a backend server built with spring boot.
In my backend I have my version number which is incremented on each build release.
My problem is that I don't know how to manage versioning in the react-native part: there's a version tag in package.json and I read here that I should increment versionCode in AndroidManifest file.
To summarize here are my questions:
1/ Should version in my backend, in package.json and in manifest file be always the same ?
2/ Is there a way to force user to update the app when I publish a new update on google play?
3/ When I publish a new version of the app, does users need to download full app size or there's a way to allow them to just download a partial size?
4/ If there's a mismatch between frontend and backend versions, users can perform actions or call some apis that aren't available anymore in my server, how can I prevent this to happen?
I know I asked many questions in one but as I said that's the first time I publish to google play and I wanted to separate my question on 4 parts to be more clear.
1/ Should version in my backend, in package.json and in manifest file
be always the same ?
No, they can be but practically it doesn't make sense. Your app might need a hot fix or you can implement features which don't require backend changes. The app version can then be changed independently.
2/ Is there a way to force user to update the app when I publish a new update on google play?
There is. You can either do this manually by sending a request to some endpoint at your backend and check if the apps version number is smaller than the version that your API returns. If it is, act accordingly in your app, e.g. show a message or prevent the user from using the app until they update.
Alternatively, you can uses In-app updates from the play-core library.
3/ When I publish a new version of the app, does users need to download full app size or there's a way to allow them to just download a partial size?
The Play store handles this automatically. Allthough I don't know for sure if it's a full redownload or a partial one.
4/ If there's a mismatch between frontend and backend versions, users can perform actions or call some apis that aren't available anymore in my server, how can I prevent this to happen?
To prevent such issues, you should familiarize yourself with the concept of API versioning. In short: If your API update introduces breaking changes, you should create a new version of it at a different endpoint in order to support backwards compatibility.
E.g.:
http://api.example.com/v1
http://api.example.com/v2
...

How to inform users to update an existing app?

I have an Android app published on Google Play. The issue is that only 5% of its users have updated it to the latest version. I'm guessing they are either not using the app and/or have turned auto updates off.
Is there a way to communicate to them using, let's say, notifications that a new version is out and they need to update the app?
I have implemented the In-app-update API into the newest version but the thing is that the users will first have to update to this version, before they get in-app pop ups about app update.
Any help would be a great help!
Thanks
Unfortunately I think you're out of luck. Unless another avenue was implemented in the older version of the app to allow for some sort of notification, there is no way to contact users who have not updated. The best you can hope for is that the users notice they have a pending update in the Play Store, and decide to update.
The only things that I can think of (based upon the assumption that old app has no code to deal with a newer version):
If oldApp supports Push notifications, you may have a chance firing one to let your users know (not super reliable for they may have them disabled)
You can try pulling the app from the Google Store (so they can no longer download it), this will cause your users to get the new one if/when they reinstall or try to find it again.
If there's a backend service your App talks to, and you can tell which version of the client is calling you (I'd hope this is something you did... as it's pretty basic), then you could start returning 500 errors and let your users "see the app no longer works" and deal with the support tickets and reviews and what not... but at least you can tell them: "download the latest version, I no longer support that".
I cannot think of anything else that you can remotely do.

Android App Version Fragmentation - How To Handle?

About half a year ago we released a huge update to the app, and with this introduced new permissions to the app (GPS / Bluetooth related, etc)
Half a year is plenty of time for users to update, however in Google dev console we still shows a large percentage, about 30% of the user base still using the old version.
I'm assuming this is due to
New Permissions require Manual updates, users must to hit 'Accept' before installing the
update, and new update is being bypassed by Auto-Update
Some users have disabled Auto-Update and never update at all
Probably some percentage of old / abandoned devices
We're looking to address #1 as we experienced that making changes to app's permissions creates fragmentation pockets within the user base.
A potential solution would be to show a periodic "in-app" notification prompting users to update. But the problem is how to release an app update only reaching those old version users without impacting current users, as we cannot remove new permissions.
A hypothetical approach would be an in-between update, but the dev console does not allow lower app versions.
Are there any solutions available for reaching stuck users on old versions, or any work arounds that could be recommended?
New Permissions require Manual updates, users must to hit 'Accept'
before installing the update, and new update is being bypassed by
Auto-Update
I don't think you can bypass the prompt for the manual acknowledgment.
My best practices for using adding new permissions are:
Always adding creative release notes to explain why I need these permissions, so the user will download the update.
Luckily with Android M your users won't experience this
Are there any solutions available for reaching stuck users on old
versions, or any work arounds that could be recommended? Thanks!
Once a user is lost, it is very hard to get them back.
You can use your analytics to determine which popular devices are using your old app version.
Depending on the time/resources you have, multiple apks and segmentation based on devices can help you in this situation.
http://developer.android.com/google/play/publishing/multiple-apks.html
A potential solution would be to show a periodic "in-app" notification
prompting users to update.
This logic can live client side and if done right users running your current version do not see that.
Hope this helps or leads you in the you are hoping for.
In the past I managed this sort of situation by having the app periodically check-in with my backend server to report the app version number. The server would check the app version number against what the server supports and if an upgrade was required the server would return a message that the app would then prompt to the user asking them to update. Obviously that doesn't help you with your existing 30% of users but it might help in the future.
I would also think it would help to release an update that targets Marshmallow and then you could use the newer permission model and prompt users for what permissions you need. I would think that would then allow the 30% on the older version of your app to auto-update or update without having to confirm permission changes in the play store. Those users would then be prompted in the app for whatever permissions you require.

API changes and users upgrading your app

I'm trying to help my company develop a strategy on when we should require customers to upgrade their installed mobile app prior to interacting with our back end services.
Right now, our apps have been on the market for 20 months and we've done numerous revisions to the app and the backend services. Only one of those has 'broken' anything so that customers using older versions of the app were no longer able to use the app without upgrading to a new version. We have apps for iOS, Android and Kindle Fire, all of which use the same backend services. We currently have the ability to require customers to upgrade, we're just not using it.
So the two questions:
1) Do you require users to upgrade, and if so
2) How many older versions of the app do you support.
(Additional info, this is an eCommerce app, so if you could say what type of app you're using as well, that would be helpful.)
Thank you!
You should probably look at a strategy of versioning your APIs. So that users with older/un-upgraded apps would have problems. And when they upgrade to your new builds, they would switch to the new API version and everything would work.
Coming to how many versions you support. That really depends on you. If you want to force the users to update, then make your servers deny requests to the old APIs. That way, if the user is interested to use the app further, he has to upgrade.
E*Commerce app. We control the endpoint the app connects to. In every upstream HTTP header, the app puts its version number. The web and optionally add a tag in the downstream header of "yellow", "red", "disable".
If the app gets a yellow key, it tells the user at some good point "This app is out of date - you should update to the latest version soon"
if the app sees a red key, it tells the user to update soon or the app will stop working.
If the disable header is seen. the app stops sending upstream messages and tells the user that the app no longer works, if they would like to continue using the service then update the app.

Categories

Resources