We have seen an increase in the request for mobile applications (or “apps”) from our clients with a lot of questions about multi-platform (eg. iOS and Android) solutions and what technologies are the best to use.
There are 3 basic implementation techniques:
- Native Application
- HTML5 Application
We will discuss the pros and cons of each to allow you to help decide which is best for your project.
A native app is one that is developed in the coding language directly attributed to the device you are targeting. For iOS devices (including iPhone, iPad and iPod Touch) this is Objective-C and for Android devices this is the JAVA programming language.
Generally the (huge) advantages of native applications are speed and reliability as your application is written in the environment recommended by the device manufacturer.
The major downsides of this implementation technique are cost (application development is expensive, especially when compared to most web development) and device specific applications. Unfortunately an app written in Objective-C is not able to be converted to JAVA for use on Android handsets and although some basic resources and logic can be shared you are basically up for the cost of developing (maintaining and upgrading) 2 separate applications.
HTML 5 is the language used to create websites however it can be used to create mobile applications that are almost indistinguishable from native applications in look and feel. Using web-based tools and techniques can cut down the development time (and hence cost) of a mobile app considerably and in some instances it can have incredible results. Another major plus for HTML5 applications is that they will run (almost completely unaltered) on any recent device so you only have to create your application once.
The technique is not without its downsides though – just ask Facebook. The compromise comes with potential slower responding apps (as your app is basically running a web browser on your device with your application inside it, an overhead native apps do not have) but also less access to native components. Where native applications allow creation of buttons, tables, etc based on the devices own defaults web applications do not have this and, although there are techniques to address this, many do not match the functionality, design or feel of the native counterparts. Some apps have used this to their advantage using the opportunity to create beautiful new interfaces that are proprietary to their own application.
Recognising the market need for a middle ground between native and HTML5 apps a number of companies have alternative solutions which vary in functionality and techniques but all have a common goal: to allow app developers to use a single tool or language to create applications on multiple devices. Solutions such as Adobe’s PhoneGap and Appcelerator’s Titanium combine aspects of native development with web-based coding techniques (although completely different implementations of this process). Our experience with these solutions are that they are absolutely fantastic for the right projects and can reduce development costs and time to market considerably while maintaining a single code base for your application. At the end of the day nothing is going to compete with the speed of a native app.
There is no one best solution for app development and the decision basically comes down to time and budget. Although you may get the best quality product from a native app the cost involved in initial development and on-going maintenance of different versions can become overwhelming. Before selecting a solution talk to harmonic about the best option for your project.