Article - Why Use Live Updates?

v1.03 : 03.24.2011

What is a Live Update?

The appMobi Live Update procedure pushes new content, bug fixes, expanded functionality or even entirely overhauled apps directly to users' devices over the Internet. These updates bypass the application stores altogether. Developers no longer need to re-submit their applications to the Apple Appstore or the Android Market in order to make a timely update or urgent fix.

How does a Live Update work?

Suppose your application has already been distributed, but it requires a timely bug fix. The first step would be to make the necessary change in the XDK and test that it works appropriately on the actual device using the "Test on Wi-Fi" option or "Test Anywhere" option.

Live Updates may be triggered from the appMobi's appHub. Alternately, a test Live Update can be triggered from the XDK. Any time an appMobi application starts, it will immediately try to check the Internet to see if an update is available. If there is an update available, the application will start up normally but it will quietly start to download the updated application in the background.

Once the application has downloaded the entire update, the application will execute one of four behaviors chosen when the Live Update was triggered:

Automatically Install the Update

If this choice was made, the application will immediately shut down and restart using the updated application. The Live Update message is displayed to the user.

Automatically Install the Update on Restart/Resume

If the Live Update was sent with this choice, the application will download the update in the background without the user's knowledge or interaction. However, the very next time the user restarts their application or task-switches back to it the application will restart using the updated version of the application. The Live Update message is displayed to the user.

Prompt the User

If this choice was made when the Live Update was sent, a pop-up message from the operating system will ask the user whether they want to update their application immediately or not. The Live Update message is displayed to the user in this pop-up. If the user selects "Yes", the application will immediately restart using the updated application. If the user selects "No", the application will instead notify the application just as if the final choice in this list had been made.

Notify the Application

The final option puts control of the update completely in the hands of the developer and allows them to code their application to handle the update by themselves. Once an application is available, the application will be notified either at startup through the AppMobi.updateAvailable parameter or during runtime through the appMobi.device.update.available event. The Live Update message is included as the updateMessage property in this event. Once an update has been detected, developers may choose to kick off the update or not depending on how they would like their application to behave. See the Live Update Sample for more information.

Why use Live Update?

There are several reasons to use "over the air" updates to make bug fixes and add new features to your application.

Get Changes to your Customers' Devices Faster

Live Updates are delivered directly to your customers' devices over the Internet. They don't need to log in to an application store at all. The update is simply downloaded in the background as your application runs. Once the update is completely loaded, you can make the switch between the old version and the new update through a user's interaction or automatically on the next application startup depending on choice made from appHub when the update was triggered.

Decrease User Friction

Because Live Updates don't interact with any application stores, updates require only a bare minimum of effort from your customers to get the latest versions of an app. When you make an application update, that change simply shows up on the application already in the device.

Allows Phased Development of Applications

By using Live Updates to incrementally improve your application, you can deliver your product in "phases". That way, your developers might build an application in steps by reacting to customer feedback through analytics.