14.02.2012 . created by Ruth
What’s a native App? Native apps are specific to the device (e.g. smartphone or tablet) they run on, they have been programmed to use the specific features available on the device, this could include camera, phone, and GPS. Once downloaded and installed they may not need to be connected to the Internet to be used. We’re all familiar with the Apple App Store and similar marketplaces exist for other devices (Android and Ovi). Native Apps were synonymous with the Apple iPhone up until recently, but in more recent times, Android Phones and Tablets have gained momentum, and we are foolish not to consider an App for Android and the other devices as they become available.
Taking iPhone and Android Phones as an example, iPhone uses the Apple IOS platform which requires a developer to code in a language called Objective C, whereas Android Apps are programmed using Java. Each has its own developer kits and API’s, which must be used to allow the App use the device hardware, e.g. camera, GPS. In this basic example two developers are needed with different skillsets to ensure your App reaches the Android and iPhone audience.
As hardware fragmentation continues, there is an increasing number of operating systems, used by device manufacturers, each which require their own development process. (e.g. iPhone, Android, BlackBerry, Windows Mobile, Windows Phone 7, Symbian, Meego, Samsung Bada, WebOS, and BB Playbook QNX). While some of these have settled on Java, others require alternative developer skillsets, for example Windows requires .NET and C++ developers. So you can see where this is going in the medium to short term, multiple development streams to cover off as many platforms as possible. One of the key advantages to developing a native App is the availability of a distribution network through the device specific marketplace. Despite revenue takes of 30% going to the marketplace, this can be a quick and easy way to get mass distribution for your App and it also removes the need and associated cost of building an e-commerce channel to sell your Apps.
Some companies have chosen to deploy mobile Apps using HTML5, utilising the local browser (e.g. Safari) available on the device, and avoiding individual developments for each platform. Many Apps, particularly where companies have existing web applications that customers interact with, have been delivered using HTML5, e.g. Airlines, Banks. Amazon used HTML5 for a Web-based app called Kindle Cloud Reader that sidesteps Apple rules for selling content on its iPhone and iPads. It seems to be the technology of choice for any App that requires form filling. Distribution relies on the company itself, rather than a marketplace. For mass distribution of your App, HTML5 has the drawback of not being available in the popular App marketplaces.
What’s the best approach? Unless your company can afford to alienate sections of its market, just because they don’t have a phone you support, a mobile strategy that will meet your needs into the future is required. What’s commonly called the Hybrid model should be considered, unless you know your audience only has a certain device. In short;
A hybrid approach allows your company to develop the core application in HTML5 which is then wrapped using the chosen Native App technologies. Depending on your mobile strategy, this can be done using each of the chosen developer kits (SDK) and API’s or a third party middleware technology such as PhoneGap or Rhodes. The development choice will depend on your budget, your internal development team and the extent of the development, e.g. is it a once off, or will all business areas require mobile enablement.
The Fluid Rock team has just completed a nine month Hybrid project, that produced native apps that deliver school text books to second level students on Windows, iPad, and Android devices, utilising HTML 5 delivered in the App via a bundled browser. This was a challenging project and we’ve learnt so much about what it takes to deliver such a project. The key lesson is that this landscape is currently changing daily. There are so many variables to consider, the likes of operating systems and browser updates can impact your development overnight, the need for diverse programming skills to cover off the various technologies involved is not easily met and factors like distribution, updates and synchronisation all have to be considered in advance.
For desktop PC’s there are native applications like MS Office and Acrobat Reader that are installed on your PC, but think about how many applications you now access through an Internet Browser. Google Apps and MS Office are now available through the Internet Browser accessed in the cloud. Mobile devices are now as powerful as desktop computers. We are now using them in place of our desktops. With their mobility, increased broadband availability and the advent of cloud computing and storage it can be seen that the trend exhibited on desktop moving from installed Software Applications (akin to Native Apps) to applications accessed through an Internet Browser (a web app) will also increase on mobile devices.
To conclude, don’t rush into App development without considering the overall mobile strategy for your organisation. Just reading the APP reviews in the marketplaces should warn you that users will have no mercy if you throw out any old App. (compare AIB with NIB on Android Marketplace). Plan it, deliver to the widest audience, and make sure it works.