The focus of this post is mostly on the iOS platform, building native mobile apps vs. web apps running in the Safari browser. A decision that anyone who wants to build an application for the iOS must make early on in the planning and architecture phase. There are some obvious (development) draw backs to the browser environment:
Animation: CCS3 has made it possible to animation some elements of a page but still doesn’t come close to animation support that’s available to native apps (or Flash, another topic, another time).
Data: native apps have much better data management capabilities available than the browser based apps and can deal with offline situations in more a sophisticated manner than the basic persistent data storage.
Speed: even though the speed of running JS has improved drastically over the past few years, there is still no comparison to natively compiled code.
Aside from development issues there are user and marketing reasons that make native apps preferred in most cases. Users like to collect these little icons that give them a sense of ownership and brands like to market their products by providing complementary widgets to their online presence.
Apple has made it easy for application developers to accept micro payments within apps, making buyers feel comfortable as to where their payment information goes where as buying content over the web, as safe as it may sound, is still iffy, specially when there is news of credit card information theft all over the news.
This post may sound like a promotion of native iOS apps over web apps, but it’s not, this is basically a set of information that should be carefully considered before making a decision as to the direction.