Native vs. HTML5 Application Development   Leave a comment

Difficulty: easy moderate challenging

I imagine that many developers and even more entrepreneurs on the verge of creating a mobile application are contemplating whether to build it using native SDKs or using only HTML5. If you are having the same doubts, this article might help you. I will explain what both options mean, what are the implications of each, the pros and cons of each, and even some hybrid options.

First, what is a native app and what’s an HTML5 app? A native app is an application written for a mobile device using its underlying OS’s programming language and its supported SDKs for displaying UI components, playing videos and sounds, animating display, using the specific hardware, retrieving data from network, etc. For iOS (Apple’s OS for iPhone, iPod Touch and iPad), this will include using the Objective-C programming and reading myriad documents ,though well-written ones. For Android (Google’s OS for mobile devices), there’s Java and a maverick UI framework. The same goes for all other mobile phones and tablets, be them RIM BlackBerrys, Symbian, Palm/HP, Microsoft, and many many more. You would also need to join the development websites, agree to the terms, perhaps pay some fees, download a new set of applications and emulators, and learn how to use everything. And that’s for each and every one of these cursed devices.

And what is an HTML5 application? An HTML5 app is an application written using HTML. HTML is not a programming language, but rather a UI layout language — it makes writing UI layouts quite an easy task. In addition to HTML, we use CSS to enhance the UI and simplify changes to it. In order to add functionality to the layout, we add JavaScript, a language similar to Java, but less restrictive and easier to start developing. The combination of these three parts helps us create powerful web applications. These web application can launch in a mobile browser, which all mobile devices made in the last 5 years have. Luckily for us developers, web applications made right will appear and behave similar on all devices with minimal intervention. Writing web applications is different from writing web sites, but not too much. To write web applications, you would need a browser — the one on your desktop/laptop will suffice, and any text editor.

Native and HTML5-based applications, as noted here, are quite different, but they can still behave quite similar. Native application are usually distributed through Application Stores such as Apple’s AppStore or Android’s Market; one buys and downloads an application and then can use it anytime. On the contrary, web applications are available only when the user is online, since the device downloads the web application ad-hoc from the host server. However, the proliferation of mobile devices spurred innovation to overcome this, in the form of two options; first, HTML5 supports Offline Web Applications, which means that by implementing this feature, an HTML application that was accessed online once can be accessed later without network connectivity; second, HTML application frameworks, such as PhoneGap, create a real native “wrapper” application that contains and shows your HTML, and as such doesn’t need network access at all. The latter also allows you to release HTML applications to Application Stores the same as a native app would, and to even extend your HTML code with some natively-implemented components.

Now that we understand the basic of each method, let’s try to explain more subtle differences between the two methods, to help you to pick the one that suits your needs. First and foremost is the creation of cross-device applications. Since different devices use different programming languages and SDKs, writing a native application that runs on several devices requires you to rewrite your code almost entirely for each device. This means learning different languages and development paradigms, testing each device from scratch, and managing it all. So, if you plan to write an application for more then one device, you should seriously consider HTML. Second, writing HTML is much less error-prone and will probably result in a much stabler release, with less frequent bug fixes sprints. On the other hand, HTML is a high-level language, and does not let you directly interact with low-level hardware. This should be taken into account if you are considering building a highly intensive game, or a highly device-specific application, for example an audio tour guide app that might require advanced GPS information and would use map-based UI, which the device provides by default and would rather be difficult to implement using HTML.

As time goes by, I expect more and more developers to be using HTML as their preferred method of choice. That’s because the growing amount of devices and different native coding requirements; RIM, BlackBerry’s makers, recently released their new OS: QNX; HP are working on a new webOS 3.0 major release; and Microsoft had announced plans for Windows Phone 7. This will push enterprises that target multiple devices toward HTML and will also push mobile providers to adapt their browsers to the recently emerged and upcoming HTML features and standards, for example video playback, finger gestures recognition, 2D and 3D drawing, geolocation, files, etc. that will eventually make HTML5 web applications ubiquitous on mobile devices.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: