| Aaron Hillegass gave a great talk incorporating this topic at the Voices That Matter conference in Seattle a few weeks ago. He made a few assumptions about the type of project that a client might ask the "web or native" question about, where there is a certain amount of backend work, a certain amount of design work, and a certain amount of presentation-layer work, either native or HTML/CSS/JavaScript. The backend and design work scale identically for web and native apps as you move from "prototype" to "usable app" to "delightful experience". The client side work scales relatively linearly across this axis for native code, but tends to rise exponentially for a web app. He actually said that couldn't really think of any good examples of a "delightful experience" in a web app, particularly on mobile. He cited the example of one of the top web companies on the planet working for years to build what is arguably a worse word processor than the "hello world" example code included in most native platform SDKs. Another issue is that once you start really trying to nail the user experience on each platform, most of the cross-platform nature of a mobile web app goes away. Sure, you can use something like PastryKit to make a web app that acts just like a native iPhone app, but then you end up with a very un-Android-like app when using it on Android. Something like JQuery Mobile is a great way to get a usable product to market on multiple platforms quickly, but ultimately not everything that could be just a web app should be just a web app. |