Posted by Wolf Paulus on Sep 28, 2010 in Software
Developing native applications for mobile devices is expensive, especially when considering that at least two (iPhone, Android) if not more (BlackBerry, Windows Phone 7, Palm WebOS, Nokia Maemo, Samsung Bada) versions have to be created. Sounds like a mobile Web Application, i.e. a Web site that is optimized for viewing on the iPhone, Android, etc., is an easy, inexpensive, and quick way to avoid costly mobile application development. Moreover, on the Desktop, the Rich-Client-Application versus Web-Application debate was decisively won long ago, by AJAX powered WebApps like gmail.com, mint.com, etc
It’s the Mobile User, stupid
What is it with these mobile phone users, why aren’t they getting the message that web-apps are cool and native-apps are a lame remembrance of the past?
The mobile experience is still hampered by an unreliable and often slow cell-network, which at times (inside Airplanes, geographic location / coverage map) may not be available at all. Even more importantly, size, performance, battery-life, and data-input capabilities, significantly influence the usability of a mobile device. And much more than on the Desktop, Privacy, Data-transfer Costs, and Power-consumption are always on the mind of the mobile user.
What’s not good enough needs to be optimized; and only what’s already good enough can be disintegrated and modularized
Web applications have come a long way and (at least on fast Laptop and Desktop machines) Web browsers perform stunningly. Web applications have been disintegrated, following the principal of separation of concerns. I.e. the content it stored in HTML document, the presentation is defined in CSS cascading style sheets, and the interaction and validation behavior is defined in JavaScript files. All these kinds of documents are downloaded and interpreted by the Web browser at runtime. Additionally AJAX with the information being encoded in JSON or XML before transfer, allows the Web browser application to communicate with the Web server at will.
All this works beautifully on the Desktop, with a fast multi gigahertz processor and multi megabits per second constant Internet connection. However, mobile users prefer a different approach, one that is optimized instead of prematurely disintegrated.
A mobile application once installed is immediately available. Like the gmail application or the usatoday application for instance, it may have cached information from the last session i.e. it is useful even before connecting to the server. Since connectivity must still be considered unreliable and not constantly available, the mobile experience gains greatly from information caching. Providing a useful experience without requiring a constant connection to the server also address two other concerns: data-transfer cost and power-consumption.
User Interaction
The User Experience however has to be optimized above all other concerns. Given the still cumbersome data entry procedure (gestures, keyboard, virtual keypad, voice recognition), mobile users need to be empowered to get to their information destination with as little input / interaction as possible.
Content versus Service
When on a Desktop, users perceive the Web as source for content, when using a mobile phone, the Web becomes the source for services.
Only native mobile application have full access to the inherent features of the mobile device, features important enough that the user chose that particular device over any other. That alone however doesn’t explain why users, if given a choice, overwhelmingly prefer applications over web-apps
Moreover, recently some great solution for Web developers (like PhoneGap) became available, to Web-enable native device functionality with HTML, CSS and JavaScript,
Still, native application can address the mobile user’s concerns as well as the shortcoming of the mobile experience much better than mobile web applications. Native applications are (much) more expensive to build but you are giving your mobile users what you paid for.
Read More