When and How To Update Your Mobile App
Finished! Yes! After weeks or months of slaving away over Xcode or Eclipse, you’ve finally finished your mobile app and submitted it to the App Store or Android Market. Within minutes of releasing the app, you see reviewers complaining about a bug or requesting a new feature. Whoops.
Figuring out how and when to update a mobile app is a crucial part of the mobile app development process. Mobile apps are very different from traditional desktop software apps. Let’s look at some of the most common reasons to update an app and how to handle the inevitable “upgrade” question.
When it comes to software versioning, or assigning a version number to a certain piece of software as it exists in a unique state, the most common number scheme is to assign a major version number, like 1, followed by a point release for minor updates, and sometimes followed by a second-point release for a revision or bug fix.
In the software world, version numbers typically follow a major.minor.revision pattern. For example, the current version of Twitter for iPhone is 3.3.6. The “3″ indicates that it is the third major release. The second “3″ indicates that it is the third minor revision of that release and the “6″ indicates that it is the sixth revision, or bug fix, to that minor release.
These numbers indicate what type of update an app has received.
The Bug Fix
The most frequent types of app updates are bug fixes. Bug fixes are typically covered in “revision” or “bug fix” releases. Bug fixes don’t change the structure or feature set of an app. Instead, these updates make sure that the app is working as designed.
No matter how much beta or user testing a developer does before releasing an app, there are always going to be problems, bugs and issues that only show up after the app is used more broadly.
Bug fixes are a way to keep the integrity and structure of the app intact, while making sure that it doesn’t crash and performs more optimally.
Google‘s update policy with the Android Market allows developers to push out updates whenever they want. With Amazon, Apple and Microsoft, however, updates have to go through the same approval process as submitting an app to an app repository in the first place.
Apple has a policy in place with the App Store that allows developers to fast-track an important or crucial bug or security fix without having to wait as long as with a regular update. Still, these instances are reserved for situations in which an app is either crashing consistently or is potentially insecure.
Because it takes time for even bug fixes to get approved, many developers try to lump several updates and bug fixes together in one release. This limits the number of new downloads for the user and prevents the developer from having to wait through multiple approval queues.
Developers should triage bug fixes based on factors like how many users are affected (or how many have complained) and the severity of a problem.
Adding or Removing Features and Updating UI
Adding or removing features from an app is a more significant update than a bug fix. For example, when Facebook released version 3.5 of its iPhone app, it rolled in new privacy updates, refined the user interface and added the ability to share external links from within the app.
It’s common for developers to use designations like “.5″ as a major milestone for a release. In other words, a 3.5 update is often seen as more significant than the 3.1 update.
Adding and removing features is an important part of the app development process. When it comes time to add a feature, it’s important to look at the feedback you are getting from your users. If enough users are requesting a feature, it’s a good idea to look into what would be required to add that feature.
Just as important as adding features is removing functionality. It isn’t uncommon for developers to go into the app creation process with one feature in mind, only to find that users don’t like or use the feature, or that it doesn’t work as expected.
Sometimes, features have to be removed for performance, stability or even compliance reasons. When making the decision to remove a feature, keep in mind what impact removing that feature will have on your users. If a feature is causing undue strain, performance problems or it’s not being used, dropping it is often worthwhile.
Marco Arment’s popular Instapaper app for iPhone and iPad has undergone some significant changes over the years. Arment is not afraid to remove features that aren’t used by enough of his users or that cause undue server strain.
A major version number update indicates that the app has some significant changes to its features, UI or both. This is the big release for an application.
Earlier this week, Instagram released version 2.0 of its popular iPhone app. The new version added a significant number of new features, including live filters, tilt-shift in camera, higher resolution photos and enhanced filter options.
Major Update or a Whole New App?
The big question for lots of mobile developers is when to issue a major update as in a new version number and when to release a whole new app.
With traditional software, developers can charge for software and offer special upgrade pricing. For example, when I bought Adobe Creative Suite CS5.5, I was able to get a discount directly from Adobe because I owned an earlier version of Creative Suite.
Likewise, when my favorite lightweight image editor Acorn was updated to version 3.0, its developer was able to offer it as a whole new version and charge for it accordingly.
This isn’t the case with most mobile app stores. Apple doesn’t allow developers to offer upgrade app pricing. In other words, if I want to update my iPhone app to version 2.0, I have to either give everyone who purchased 1.0 or higher a free upgrade or release a brand new version of the app.
Both strategies have their pros and cons, and it’s important for developers who charge for their mobile apps to take both scenarios into account.
Pros and Cons of Releasing an App Update:
Pro: Existing users will be happy that they don’t have to pay.
Pro: Promoting the app and the update won’t require changing any links to the App Store.
Con: The development costs for the new version need to come from brand new customers.
Con: Users are forced to update the app (unless they explicitly choose not to).
Pros and Cons of Releasing a New App:
Pro: The developer can get paid for their work.
Pro: Users are not forced to upgrade the app. They can continue to use the old version indefinitely.
Con: Users might revolt or be disinterested in buying a new version.
Con: Migrating settings might be difficult or untenable.
Con: Promoting the app and letting new users know about the upgrade might be difficult.
Most mobile app developers do not release a new version of their app and instead update the existing version. However, some developers have managed to release a new version of the app and have done so successfully. Before selling to Twitter, Loren Brichter released Tweetie 2 for iPhone as a brand new app, and thus a paid upgrade. Some users did complain about the charge, but Brichter held his ground and the app was a massive success.
A common workaround that many developers have successfully used is to offer their app for free for a limited time, in order to allow existing users to upgrade for free, and then to start charging the usual sales price. Some developers also offer the app at a discount for the first few days both to promote a new release and as a gesture of good-will towards existing users.
In-App Purchase as an Update Tool
For developers of games and other types of extensible apps, a common upgrade approach is to release new level packs via in-app purchase.
PlayFirst, Inc’s Dash series of games frequently releases updates both to the main application, as well as additional level add-on packs. This is an easy way for the developer to extend the game without forcing customers to buy and download a new version.
Likewise, music apps and document and utility managers can offer add-ons that add support for new features.
Keep in mind, the in-app purchase approach doesn’t work with all apps. It’s a very different type of business model, but for game developers, can often be the best way to approach extending a game.