How to check if installed version of app has become obsolete - android

PROBLEM
I want to make sure that user of my app is not using a really old version of my app. Just like it happens in WhatsApp that if you are using an outdated version it shows a message that current version has become obsolete, update your app from playstore. I want to achieve this kind of behavior in my app too.
Way I thought to achieve this
To achieve this behavior I thought of hitting a web service at start of app which will give latest version number of app available in response. That version number will be updated manually in backend on new update release, and in app I will get the current installed version of my app through code(if possible) and compare it with the version returned from web service. Web service will also return minimum install version required. So comparing with it I will show user dialog for updating app from play store.
This is what I thought to achieve this behavior. I want to know if this is correct way of doing this and if not please suggest me more appropriate way of achieving this behavior.
Thanks

Yes, this is the correct approach.
If your app is using a web service, but not for everything, you can consider to only show the dialog if the service needs top be used. This minimizes the number of unnessecary requests to the server.
Normal is: Client sends request and own version number. Server checks version number. If it is recent enough, it handles the request, otherwise returns an OUTDATED response: If the client receives this OUTDATED response it can show a dialog and redirect to play store.

Related

Notification when there is an update

I have been looking for a while to send a message to a user when there is a new version of the app is released. When I upload a new version to the Appstore or GooglePlay a message should appear when the user opens the app, but does not have the latest version that will allow user to easily update the app.
Do you guys have any solution for this? It`s for IOS and android.
There are several ways to approach that problem.
Send remote notification for each user about new version being available. Problem with this solution is you have to get user's permission first, but it will be definitely the most convenient one to use.
In-App updates:
For Android: https://developer.android.com/guide/playcore/in-app-updates
For iOS: you will have to build similar logic on your own. You will need a server-side logic - just a file exposing latest version string. Then on iOS when user is launching the application, you can compare users version with that file - and if it's different, show a custom popup telling user there is a new version available and link to AppStore.
Problem here is that user has to launch the old version - which will not give you similar results as remote notifications, which will be shown without user opening the application.
I think the best solution would be to do both and cover all cases. Remote notifications will be definitely nicer way to do that for users that allows you to do so, rest of the users will be notified inside application itself. Just make sure to not notify user about update each time they open the application if they don't update it - best approach here will be to do it once per version maybe or even better make your version file to define it update is something really crucial and should trigger a popup.

iOS and Android app old version - prevent using

We are going to do a major update to an mobile app (both iOS and Android). When we do this update, we need to prevent the existing user using the older version anymore (in case if the new version is not auto updated) as some features might not work with the server update.
Is there any options in iOS and Andorid developer centers (for that app info) to mark that older version as cannot be used any more or to atleaset notify the users that they have to install the latest version when they try to use that app(incase they have switched off auto updates)
I have seen there are options to do it from the code by comparing it with the existing version and to notify the user. But since we have not implemented any such mechanism in our apps which is currently in the App stores, I don't think we can do the code based option for this version. That's why we are looking for other options like doing it though App store confugration etc..
Unfortunately, there is no solid solution for this issue.
One workaround if your app make any API calls, you can modify the response to let user know whey need to update the app. Or else, perhaps you can send a push notification to let existing user know they need to update the app.
Futhermore, you might need to implement force update mechanism, which is basically check user's current version with your latest app version, so you will know which version they are currently using. There are a few ways to do this:
Server side: You need to send app version to server and if it is not latest version, stop user and force user to go to AppStore/Playstore to update.
If you are using Firebase, you can take a look at Firebase Remote Config. I have not used it but I believe it would work.

Does iOS has In App updates like feature as of Android?

I have developed a Mobile App for both Android and iOS. Now every week we have 2 updates to be released. Most of the times Android and iOS users stops auto updates for the apps. But if there are critical updates or bug fixes or new features then we must ask user to update the app for better usability. For this I have found Android has In App Updates API. It says and I quote
Keeping your app up-to-date on your users’ devices enables them to 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 may need to be reminded to update. In-app updates is a Play Core library feature that introduces a new request flow to prompt active users to update your app.
However I am not able to find same kind of or similar like feature for iOS. I am not sure if Push Notification can do the same or not. Please advise.
No, App can not be updated or downloaded without the user's settings for Auto Updates.
But you can try an alternative way.
Like when the app opens or comes to the foreground, call an API/web service to check is there any critical update released based on the current version of the app? Based on YES/NO response, show an alert to users that new update is available and on OK click, take them to the Apple stores.
No, iOS does not have the auto update feature that Android has. Push notification would not work well for this, as 1) the user may disallow push notifications, and 2) the Push would not know what version the user is currently using.
If your app calls a backend web API or web service, then it is pretty simple for the app to call a method, say, getVersion() in the web service. The web service reads the current version as set in a config file and returns it to the app. It could also return a flag that says Mandatory = either Y or N.
In your app, you call the getVersion() method every time on start up. If the app's version number is less than the version returned in getVersion(), then you check to see if the mandatory flag is set to 'Y'. If so, you show a dialog that says a mandatory update is required before you can use the app, would you like to install this now? If yes, you navigate them to the page in the iTunes app store, and exit the app. If no, you exit the app. They will get the same message every time they try to run the app until they update it.
If the mandatory flag is set to 'N', you show a dialog saying that an updated version is available, would you like to install it now? If yes, then navigate them to the page in the iTunes app store, and exit the app. If no, you allow the app to open and continue. However, the user will again be prompted every time the app opens until they update.
You can make the getVersion() method work for both iOS and Android, if you pass the platform to the method getVersion(String platform), and then read the config file for android_version or ios_version (as the version numbers may differ between platforms) depending on what was passed in the platform parameter.

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.

Want to replace the old version with the new version in android

I have created the the android application and it was given to all my clients. Now I update my application and want that changes are done to all my clients. I don't want that client to uninstall the application and install the updated application again. I want that when the client opens the application shows a notification which asks the client to install the updated application and then log in.
I want to achieve this functionality does anyone have any idea how to do this?
Please do reply me it's very important for my side.
How did you distribute the application? Through the android market? If so when you upload a new version their phone will periodically notify them that updates to some of the apps are available. If you did not implement this functionality in the version of your application that has already gone out then I am afraid you don't really have a way to make this happen.
Moving forward what you can do to implement something like this is have a webservice that returns the current version code for the application. In your apps onCreate() method call this webservice and compare the result with the version code of the app on the system. If the one from the webservice is greater then prompt the user to go download the new version.
Edit: If you didn't implement this in the version you've given out already then you have no choice but to just send out a new apk file to them. You can use some process similar to what i've stated above in the new version so from here on out you'll be able to set a value on the server that will lead to the users being prompted to download new version.

Categories

Resources