The Blog

our latest news

mobile app: web or native?

iPhone native appsThe Mobile Platform is a relatively new beast in the world of computer programming. For the longest time (atleast since 1996 that I know of), companies have tried to come up with ways to squeeze the power of the Internet into a device that conveniently sits in your pocket. After many stop and go linear approaches, one company changed the game. Apple with their iPhone release in 2006. A whole new Computer with different architectural rules, and user expectations was born. The notion of native Apps was created. Even though “The Browser” is a perfectly mainstream gateway to the Internet on a desktop, the same rule does not translate naturally to the mobile environment.
In fact that was the very reason why Mobile Internet has been the next big thing atleast for the last 15 yrs. Companies lazily expecting their users to adopt “The Browser” on the mobile phone without realizing this is a completely different beast. Its a paradigm shift in computer programming. TheMobile Computer is turning out to be the next step in evolution of the Personal Computer.

WebApp (“Browser based”) Development

Web App Development involves accessing the Mobile App via a native browser located on the device. Programming can be done using standard web technologies like HTML, CSS, and Javascript. Just like the PC world, the App executes completely on the server, while the mobile browser serves as a dumb terminal rendering just the UI. Some Javascript/Ajax approaches try to add some thickness to the architecture, but for the most part the App is fully reliant on the server and an active network connection.

Advantages

  • No need to maintain a different codebase for each native mobile platform.
  • Write Once, Run Anywhere flexibility for the developer.
  • No App approval process needed.
  • Uses the same serverside infrastructure as traditional web applications.

Disadvantages

  • Not a very good user experience. The network latency on a desktop does not map equally to a mobile device. Users need information quick. Even a delay of a few milliseconds can result in frustration. Same pause on a desktop goes completely ignored.
  • Web apps don’t have the native look and feel which makes the user experience un-intuitive. Plus, each browser renders its content differently depending on the device, which can further add to frustration.
  • Does not allow access to all the low level services of the mobile platform that can deliver true innovation. Accessing remote data on the go is not the only real advantage of this new computer. Its ability to feed context sensitive information back into the system unlocks the potential for a whole new world of computing.
  • Some access via javascript and/or browser plugin is available, but it can never replicate the natural feel of accessing the low level platform API.
  • Too much dependence on a network connection. No offline access to critical data in the event of a network outage.

Native App Development

Native App Development involves developing the App using the programming language and APIs provided by the native platform. It provides the most flexible approach to implementing complicated functionality and provide the best user experience possible. Here are some of the advantages of developing a native app.

Advantages

  • Best user experience with respect to response times and intuitive user interaction
  • Accessiblity to low level hardware, and sensors to truly take advantage of a mobile computer that is aware of its surroundings
  • Offline access to critical data even in the event of network failure
  • Provide intuitive push based notifications as the state of an App changes remotely

Disadvantages

  • Managing an App codebase across multiple programming languages and platform APIs
  • No write once, run everywhere convenience for programmers
  • Some platforms may require a slightly tedious approval process before installation on an actual device

Whether to use the native approach or the web based approach is purely a business decision. For simple apps that only need to access data via a dumb terminal, native approach is overkill. For complex apps that fully utilize the power of the underlying platform, a native app is the best route.

Source: openmobster, an open source platform for integrating Mobile Apps with Cloud services.

 

Tags: , , , ,

Comments are closed.