Wednesday, November 28, 2012

It's a hybrid !!



The motor car industry is in transition right now. It is a slow process that will take the motor car back to it's roots as the 'electric carriage' of the 1830's.  Electric cars were common until the petrol (gasoline) overcame the limitations of battery storage capacity and vehicle distance, to dominate the market for over 100 years.  The long term trend in the rising cost of fuel, the impact of the combustion engine on the environment and changing social/work patterns have re-introduced the electric car back into the market.
Despite electric car innovation, if you are in the market for a new car today, it's likely that you will settle for a hybrid. The hybrid overcomes the deficiencies of current battery technology in electric cars while offsetting the rising cost of petrol.

Mobile application development can be described in much the same way. When people talk about writing mobile applications, they often talk about 'native' and 'HTML5' based applications. When you think of 'native' think 'petrol'. Developers will write apps in 'native' code - that is code that runs natively on the operating system. Because mobile devices use different operating systems, developers have to write their application multiple times - thereby incurring a high cost of development. And testing. And bug fixing. And enhancements. Even if you plan only on supporting iPhone and Android - that's still a hefty investment to make for the same piece of functionality. You will never have functional parity (think Windows and Mac software).  Don't be fooled by that starry eyed programmer who is telling you that writing a native application is the ONLY way to build your mobile application.

The alternative approach to developing mobile applications is to write a single web app that runs on the mobile browser, using HTML5, CSS3 and JavaScript, mitigating the high cost of writing multiple native apps. HTML5 mobile web apps are very much like the electric car. HTML5 is a new standard but the mileage is limited. HTML5 is a specification that has been evolving at the same time as the iPad - so naturally it falls short in supporting all the things you want to do on a smart phone or tablet today. Even with basic feature support (location, local storage and camera) HTML5 does not solve many of the mobility problems that developers face - specifically security, offline support and access to native device features and phone functionality such as push messaging.

Just like the motor car, there is also a third option - the hybrid.  The hybrid mobile application blends the best of web with native code operation. Hybrid apps run inside a native container and leverage the device’s browser engine to render HTML and process JavaScript locally. Hybrid development requires you to write one web application (HTML5, CSS3 and JavaScript) and access device features through a JavaScript API.  Apache Cordova (PhoneGap) takes this approach, as does emotive an mobile cloud computing platform (disclaimer: the company I work for).

There are many advantages to the pure hybrid model (by 'pure' I mean there's no  cross compilation of the source code - it is just run it as-is) - these include
  • faster time to market
  • standards based web programming model 
  • access to native device features
  • development team needs no training and no expensive native programmers to hire
  • reuse existing web assets - including mobile web assets
  • cost of maintenance is low
  • not locked into any vendor 
  • faster iteration time to build and revise applications

Yes - it's true that today you get more mileage from a native application over a web mobile application - but at a really high operational cost and you know that it is not the long term option.  HTML5 web mobile applications are cheaper and easier to produce but fall short in giving you full device access.

Just as with the car, if you are looking to build the next generation of platform independent, smart, context aware, enterprise mobile applications at low development and maintenance cost, then you want to go with a hybrid.