As with operating in any quickly changing fields, developing apps in the mobile space presents both opportunities and significant challenges for agencies and clients alike. Though clear trends are emerging that point towards an expansion of cross-platform frameworks, the decision is by no means clear and obvious – there are pro’s and con’s to each approach.
Native App Development
The first clear decision to make is whether to develop apps separately for each individual mobile operating system, or whether to use a cross-platform framework aimed at permitting the reuse of code across different mobile operating systems. There are quite a few frameworks out there, which operating in different ways – a good overview is available from http://www.toolsjournal.com/tools-world/item/157-10-of-best-cross-platform-mobile-development-tools.
Regardless of the framework in question, there is a tradeoff to be made. By developing native apps, you get:
- Access to everything in the Operating System (OS)
- An interface that is more likely to match the expectations of the OS users (Android Users, for instance, don’t want their apps to look like iPhone apps)
- Performance can be optimised for the environment
So far so good, if you have an app that is guaranteed only for iOS and / or Android, and if you have time for the native development process. What if your app needs to be available at the same time on iOS / Android / Windows / Blackberry / Web OS and you need to release it in the next week to beat the competition to market? What if you don’t have the money to support internal teams or suppliers with an expert capacity to deliver natively in each of the platforms required?
What your cross platform framework will deliver depends on the platform itself. Following evaluation of the specific needs of our clients, and in consideration of how to best compliment the skills of our team, we have chosen PhoneGap (http://www.phonegap.com/), for the following reasons:
- HTML5 based – can reuse web skills whilst also hooking into the undelrying OS
- Lots of momentum behind it – for instance, Adobe include native support for PhoneGap in DreamWeaver CS 5.5
- Clear signals from Apple that they won’t be outlawing the use of this particular platform later on down the line
- Easy to use with a big user community to ask, and lots of excellent documentation
By developing PhoneGap apps, you get:
- Ability to create your app for up to 6 mobile operating systems
- Rapid prototyping – build your prototype as an HTML5 web site, continually previewable within your target mobile platforms
- Reuse of code and design assets – don’t have to rewrite everything from scratch for each platform
- Reuse of existing skills – web skills are easier to find and less costly than native app development skills
- Easy deployment – you can use PhoneGaps submission service to allow you to build and distribute apps without having any of the mobile OS development software on your machine
Because PhoneGap apps run as standalone HTML5 apps within an invisible browser window, they do run the risk of feeling more like web sites and less like mobile apps unless implemented with sufficient care and attention. Perhaps the biggest question marks are over:
- Lack of interface “flow” – the directness of coupling between gesture and response that makes good smartphones such a joy to use – without careful attention, HTML5 based apps run the risk of feeling jerky
- User interface could easily feel inappropriate for the specific target platform, with insufficient use made of expected elements, such as tab bars
- Poor performance – particularly where functionality that makes lots of calls to the OS is used – such as geo location
- Patchy support for changing phone orientation, from portrait to landscape and back again
- CSS – potential compatibility issues on some devices
- Lack of access to some native functionality
Though requiring careful attention, these are not show stoppers. For instance, where there is lack of support for particular native functionality, it is possible to create plugins – sets of platform specific functionality wrapped up in a way that makes it accessible to the framework. However, the emphasis is always likely to be on solving the genreral problem for all platforms rather than the specific problem for a particular platform.
Which is Best – Native or PhoneGap?
As with any commercial decision, there is no absolute right or wrong answers – just strategies that are better suited to some situations rather than others. As an agency, we will be using a mix of approaches – native, PhoneGap, and other frameworks as well (such as Corona for Game App development). However, broadly speaking the advantages split out as:
PhoneGap (Cross Platform)
- More cost effective for cross platform development
- Faster to market
- Easier to repurpose (e.g. for co-branding or white-labelling)
- Relies on less-costly less-specialist skills for implementation
- Better suited to existing work flows in design / technology agencies
- If you have the right budget, you get exactly what you want (if the OS permits it)
- Users will naturally see the kind of interface they expect
- Performance is likely to be better
Although I don’t have a personal crystal ball, I think it is clear that the mobile OS wars are not over yet by any means. If Gartner and other pundits are to be believed, over the next few years we will continue to see Android and iOS dominating, but with Microsoft/Nokia becoming a major smartphone player, and Blackberry retaining a significant market share. It is hard to say yet whether Web OS will really take off, despite the best efforts of HP.
Most likely then we will be looking at a market with four or five major mobile OS platforms. With so many platforms in existence, I would say for any business or initiative that doesn’t have access to major budgets, but which requires reach across diverse audiences, cross-platform frameworks such as PhoneGap will prove an attractive development strategy.