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.
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.
I am creating an app in Android and iOS which has a requirement to alert the user whenever new app versions are available for the respective platforms.
Should i create a web-service to provide the app versions based on the platforms?
What data do i need in the web service to keep it generic? Android uses version code where as iOS uses major and minor version updates.
The app is login based. Should i check for the updates after the user logs in or before?
For android when a new version is released for the application in the market user will get alerted for the availability of new version. User will be alerted. Same as the case for iOS. No need of creating web-service
Should i create a web-service to provide the app versions based on the
platforms?
=> As such Android provides notification whenever new version is available, but as you mentioned its your business requirement, so i assume you want to implement/include some new features in new versions only.
so check version and implement such, you must have to have web service for the same.
What data do i need in the web service to keep it generic? Android
uses version code where as iOS uses major and minor version updates.
=> You can fetch version number from the current app. Check: Get application version programmatically in android
The app is login based. Should i check for the updates after the user
logs in or before?
=> There are 2 cases:
You can call web service and check whenever app is launched. (May be in splash screen or something else)
If you do include this functionality (version checking) inside Login, then you must have to check everything whether the user is already logged in or not. So i think this is not a good case.
If you are updating the application's version in the iTunes or Google play , The users get notified automatically by the providers. Or if you have changes within in the application such as a new feature is included you can notify the user using push notifications. Hope this help you.
For iOS, user gets notification from Apple itself when new versions of installed apps are available. These notifications appears at "App Store" app.
I have developed an android app which keeps runing continously for days. Now i normally keep making updates of this app and i want that all the phones running my app should somehow be able to auto update my app installed in them.I have not yet released my app in the market.In my app i have already developed push notification feature if that helps ? Any ideas ?
you could use a server and get the app to check for new updates and download accordingly.
Not sure if this is what you're looking for.
If the app is on the Android Market (now Google Play Market) then there is no way to force the user to update. Like DCSoft said, you could have your app check some server to see if an update is available. At that point you could either bug the user until they update, or you can prevent the app from functioning until it is up to date, but that's about it.
You can use https://github.com/commonsguy/cwac-updater
It's really easy and fits your need.
I used it many times.
You can use services in android to check if there is any update in the service, if so trigger the service, to update the stuffs, else destroy it.[User might not come to know about this]
Is this what you wanted?!
Vishnu, assuming you don't want to use the Google Play auto-update feature, you will need an Updater. In two of the companies I worked for, we had a similar problem with both Windows Mobile 6.x and Android apps - no Google Play allowed for security reasons - and I used this solution in both cases successfully:
The main app check if it's updated, against a Web Service. It receives the current version & the URL from where to download the new version, if necessary. The main app then starts the Updater app, passing the URL, and quit.
The Updater download the new program, via HTTP, showing to the user the % downloaded. The user can cancel the download anytime, in a controlled way, and the Updater can registry this cancellation.
Since the new app is downloaded, the Updater run the new app, and quit.
I have an app written in Adobe Air (actionscript3) then packaged as an APK for the moto xoom (android os, using flashdevlop).
We are looking to host both the install and update. There are no issues with selecting unknown sources. And installing from web works but i cant seem to find anyway to set it up to find updates thru my server or the correct way to push those updates. Thoughts or links, google has failed me?
UPDATE
I forgot to make clear i need it to work thru the built in update checking so it will auto update if the device is set to do this. By default either the app or device is checking for updates somewhere. I want to change where it checks for that update and what format/syntax its expecting.
The built-in update check is the Android Market app, pinging the Android Market server to check for updates. Since you're not distributing your app through Market, there's no way for you to take advantage of its update mechanism- You'll have to write your own (Amazon's market app, by way of example, does this).
Essentially you'll have to set up some sort of alert mechanism (check for updates on app startup, maybe), download the APK, and fire an intent to have the user explicitly state they want to install the app. Auto updating (downloading and installing the APK without the user doing anything at all) isn't possible outside of Android Market, for security reasons.
For more information on how to fire the "install" activity, check out this thread.
It sounds like a good case for cloud to device messaging....to notify the user of the update
is available...
http://code.google.com/android/c2dm/
I think they will still have to download/install it.....You can help them by making the download/install feature of the app it self.....
okey... i think you have a few web services right... create a update webservice that takes in the user version and sends it to you.. you can cross reference it and if the user needs to download a new version they get directed to a browser ... where you can poit to where you host the files... you can put in a menu item in the app to say allow the user to check for any upgrades... version number of the app can be got easily... check google or get back to me if you still are nunable to find any...
In one of our projects where we are implementing an application using Android/HTML5/JavaScript there is a requirement for having an Android Auto update kinda feature which is as described below:
Update Native version: The Native version of our application should be easy to update. New versions should be possible to “push”, or at least notify, the user of. Does this require that we publish it to the Android Market?
As of now Notification of the new version can be send to the device but we need an approach to automatically download the new version and install ie., either update the existing version or overwrite it. Hosting the new version in Android market is the last option according to the client
If someone/somebody has earlier come across or implemented such a feature, could you kindly reply back.
If you are using the Android market , the best solution is to just notify the user that an update is available. Depending on the update or Application you may decide not to allow the user the access the app if an update is available.
You will always need to push a new APK to the market , the user may setup the auto update feature but I believe there is no way for an app to force the setting.
Any method which will allow the app to auto update would either need more privileges from users or a routed device , which I guess is not a big enough percentage of users to try the feature.
The android market allow to auto-update applications. Is you want to do it without using the android market, your users will have to enable apk install from unknown sources and they will have to confirm each installation (unless their phones are rooted I think)
There is a nice service called http://push-link.com
This hosts you APK and manage updates. You can choose how the user is going to be notified and see the progress installation of all version.
Cheers...