In part 1 of Mobile Apps - Web vs. Native, we looked at the two types of application which are available for mobile devices: native and web-based, I attempted to provide some clear definitions for the two, and hinted that there might be some middle ground between the two.
In this post, we are going to look more closely at the pros and cons of creating both web and native applications for mobile devices, and I’ll expand on the ups and downs as necessary.
Remember, native applications are those apps which are installed from a “market” and onto the device, they take up physical space on the device, and they can access the device’s hardware.
###Pros
###Cons
Whereas native apps reside on the device, web apps reside on remote servers. Access to web applications is performed through a web browser and the application does not have direct access to the device’s hardware.
###Pros
###Cons
###A Happy Middle Ground
Wouldn’t it be great if there was someway we could take advantage of all the “pros” of both native and web applications? What if we could mitigate as many “cons” as possible? Not surprisingly, we can.
There are currently several products available which “allow web developers to take a web app and package it as a native app for the iPhone and other mobile platforms.” Applications can be initiated and ran as a mobile website. When, or as, the application reaches certain milestones, it can then be released as a native application. Those users which want to have the “latest and greatest” can still access the web version, while those who require less can utilize the native application. Instead of waiting on the approval process of the markets, the application can always be available online.
Jonathan Stark, author of “Building Android Apps with HTML, CSS, and Javascript” states this best,
For me, this is the perfect blend. I can write in my native language, release a product as a pure web app (for the iPhone and any other devices that have a modern browser) without going through Apple’s approval process, and use the same codebase to create an enhanced native version that can access the device hardware and potentially be sold in the App Store. And if Apple rejects it? No big deal, because I still have my online version. I can keep working on the native version while customers use the web app.
Today’s web browsers are powerful and crazy fast and the mobile browser is no different. What you can do with a little Javascript, HTML, and CSS today as compared to five years ago is astounding. Look through some of the examples on Google’s Chrome Experiments and you will see my point. And now, with the advent of HTML5 and the many “real time” protocols which are in use, web sites are catching up, if not eclipsing, traditional native applications. Why waste the time, money, and human resources necessary to build two or more of the same applications when you could just as easily build one application and deploy it to all the platforms?
##Further Reading ###Web vs. Native
###Middle Ground