Smartphone native-app vs web-app

If you have been following mobile phone news, you should be aware that more and better smart phones are available everyday, and more people have integrated these devices into their lives.


Even Gartner is monitoring this market closely. Here are some news from Gartner's Newsroom:


"Gartner Says 428 Million Mobile Communication Devices Sold Worldwide in First Quarter 2011, a 19 Percent Increase Year-on-Year" on 19 May 2011

"Gartner Says Apple iOS to Dominate the Media Tablet Market Through 2015, Owning More Than Half of It for the Next Three Years" 11 April 2011

"Gartner Says Android to Command Nearly Half of Worldwide Smartphone Operating System Market by Year-End 2012" 7 April 2011



Why are these smart phones so appealing that people use them day in and day out? One of the reasons is that it connects people in a new ways by using various applications, e.g. youtube, facebook, twitter, and lots of applications with different purposes.

Native-apps

At the time of writing, the number of applications on App Store for iPhone has already reached 350,000. All these applications are so called native-apps, which require installation on the device and run locally on the device no matter if it is an iPhone, iPod Touch, or an iPad.


To develop such applications, it requires the knowledge of Objective-C and Cocoa Touch frameworks. This is only for developing applications for iPhone and its siblings. If you want to build applications for devices running Android OS, you need a different set of skills and knowledge. Not to mention another skill set for Windows Phone.

Web-apps

However, mobile technology is evolving very fast. Corporate organisations seem to favour the new HTML5, CSS3 and JavaScript technologies and use them to build web-based applications that can address different mobile devices, such as iOS, Android, BlackBerry, Windows Phone, and other HTML5 friendly devices.


Frameworks for building these kinds of web-apps have emerged, like iUI, XUI, Sencha, JQuery Mobile, and more. Out of these frameworks, Sencha Touch and jQuery Mobile seem to be the frontrunners.


Apple has even provided a dedicated place for Web Apps (http://www.apple.com/webapps) something like iTunes store.

How to choose?

Which technology you should use to build your next application? Should you build a web-based application addressing wider audiences or build a native-app targeting just one single device?


You need to understand the nature of these two technologies and your target audiences. Here are just a very brief summary of their characteristics. It is by no means complete or exhausted.

Native-apps

  • fast response
  • better user experience, e.g. animation
  • offline mode
  • access to local hardware, such as camera, accelerometer
  • less dependency, as it usually targets a single device only

Web-apps

  • address different types of devices
  • require online connection
  • easy to rollout new versions

Things to consider

There are other things that need to be considered, such as

  • total cost of ownership
  • time to the market
  • developer availability, e.g. skill set

 

Costs

Organisations may have misunderstood that web-apps require less effort to develop and maintain. A good web-app needs to adjust the content according to the requesting device. For example, it should provide different contents or use different layouts for iPhone and iPad, as they have different screen sizes. That means the web-app will be more complex than it was for targeting a single device.


They often neglect the running costs as well, as both business and presentation logics are now handled on the server side. In contrast, they are handled by the native-app that runs on the device. That means it requires a powerful machine and more memory as the number of clients increase.

Conclusions

No matter what you are going to choose to build your next applications, they need to meet the business requirements and the cost justification. It does not make sense if an application does not serve any purpose or is too experience to build and to run.


I don't see web-apps competing against native-apps, rather they complement each other very well (at least for now). Web-apps require low development and maintenance costs targeting wider audiences, whereas native-apps target power users with better performance and more functionality.


No doubt that mobile technology is gaining momentum into our everyday lives. New battles have just been started between device providers, between application providers and between content providers themselves. It will be very exciting to see how these technologies evolve into the next stage.