I have finished building an android application, I still have to do one last step, which is open a window for updating.
what I have thought about
there should be two scenarios:
an important update, which means a new version contains a lot of different from the last update and I don't want my users to use the old version any more so in this case whenever the user open the application, he MUST update to the newest version in order to work with the application again. for instance, the newest version contains new functionality, or contains a new data representation.
not important update, which means that the user should update the application but it is not a necessary step. for example, the newest version just contains more beautiful images.
my question
what is the best practice to allow my users to update the new version of the application.
In addition, I thing it is something about the URI which contains the package of the application in play store, for example:
Intent intent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.google.android.apps.maps"));
startActivity(intent);
in that code, I allow my users to download the Google Mapapplication from play store.
any help would be appreciated
You need to have some kind of server. This server would answer users if they have current version (answers: current, supported, outdated).
You can use GCM to inform client app that it should ask server about version.
App would ask server about version on start/resume/back online and when GCM arrives.
When app receive supported it can show users information about new version available. When it gets outdated it should lock until user updates it.
Or, you could just load your app onto Google Play and let that server notify (with it's already built-in GCM of sorts) when an update is ready. You need to do nothing to ensure your users have access to updates, although you cannot force them into it
Related
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.
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.
On Android I think that you can 'unpublish' an application so that no new users can download the application but that the user who already have the application will recieve new versions that are uploaded to google play (or so it seems to say here: https://support.google.com/googleplay/android-developer/answer/113476?hl=en&ref_topic=3450986 )
However I can't find any information on iOS. Can I remove the app but still update existing customers with a new version?
Just for context the update I want to issue for both OS is basically an app which displays a 'app is now closed' message.
Any help would be gratefully received.
Can I remove the app but still update existing customers with a new version?
As far as I am concerned, you can't do this in the App Store.
No, this isn't possible. Once you remove the app, nobody will see it in the app store. Existing users of the app won't see any updates that you may have published before removing it that they never installed. It's just gone if you remove it from the app store.
You could publish an app update that includes some kind of notification system within the app, and keep that in the store long enough for most users to upgrade. Then after you pull the app from the store, you could update this message (presumably it would retrieve this message from your server) to state that the app is no longer available, and maybe direct them to whatever you have that you're replacing it with (assuming you're replacing it). Otherwise, I don't see why you necessarily need to inform existing users that you've removed the app. If there are server-side components that it accesses, and you're shutting those down, I guess the app will simply cease to function for existing users.
I also don't think there is a way to offer updates without new customers being able to buy the app.
Why not increase the price of the app to the highest price allowed in the app store, so that no one will buy it? That way you can offer an update for your existing customers, but effectively stop new sales. If the new price is $1999.00 US, I doubt if you will get any takers...
Are there any special requirements my app should obey to ensure users are notofied when an update is available? (My current app is freeware if it matters)
Google play shows automatic update once you release a newer version of your app in google play. But the update can be see only if the user visits your app in Google play.
If you want to show the update notification at the launch of your application, then some extra coding is required.
You can write a code inside the start of your application to read a file from some server, which contains the version number of your app.
Evereytime you update the application, you can change the version number in the server.
So, once the app gets a different version number as compared t previous one saved in sharedPreference, you can write logic to launch googleplay to update your app and also update your sharedPreference with latest version number.
Hope you understand what I am trying to say.
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.