Sunday, April 11, 2010

Native Mobile App or Mobile Web App?

Every time I meet a new customer of ours, I see this questions directly or indirectly posed. Most of the people do understand the difference between the native mobile app and the mobile web based offering. But still they have this difficult (or simple?) decision to be made. In my opinion, both the approaches are needed for an enterprise at some or the other time. The roadmap to leverage full potential of mobile computing must address the requirements on case-by-case basis. We are all aware of this, but the question is “how to address it”!

At Endeavour Software Technologies, we conduct MOA (Mobile Opportunity Assessment) prior to any new engagement. We run through the three-step process of Understand, Identify/Strategize and Recommend. We understand the customer’s business thoroughly and then strategize the approach to solution. Being more than 8 years purely in mobile computing, its no more rocket science for us! Rather it’s an art we have mastered over past several years.

Based on the past experience, I thought of jotting down primary consideration we make before we recommend a native app or mobile web app. Here in this article I am going to briefly discuss them.

The basic difference
Technically speaking, native app mobile resident client application (thin or thick), which stays, runs and interacts locally. The content for the application may come from the central server or local database. All native app contain the basic information it needs in order to launch. The developers generally architect it such that upon successful first launch, through Internet access, it can bring the most recent information from server.

The mobile web applications are basically the websites/ portals that are completely fine tuned to the browsers that are found on the mobile devices. Mobile websites most of the time depend on user-agent details found in the HTTP request. Based on the device browser configuration, the website can deliver the specialized content that suits/ render well on that device. Other than this basic fact, everything in the mobile web site is pretty much same as any other website. Of course, the user ergonomics has to be considered to make the user experience most satisfying!

Factors to consider
In general, when it comes to deciding either of the applications, one should review the requirement/ solution on these following points -

Usability/ User Experience
This is the top most priority of any solution. Mobile applications are expected to provide an interactive, and highly precise experience without unwanted complications. On the other hand mobile web sites more often rely on the Web-model of interactions (e.g. links, images and animations) and are more likely to bring themselves out of focus. The mobile applications are often finely crafted solutions that take maximum advantage of the underlying platform and available form factor real estate. The native applications are most of the times build to run in online and offline modes. The connectivity is not the all time need.

Even though native applications score positive on this factor, the HTML5 support on phones raises the bars; it is yet to catch up well ☺

The inherent nature of the web application needs less maintenance than native apps. This is true because of the larger number of mobile platforms. Every time a new change or function to be rolled out to the users or the content needs to be changed, it has to be prepared for each and every device being supported if it is a native application. In contrast, for mobile web application, it’s just the content that needs to be realigned with respect to the browser. Device is of less importance here.

Of course, since we have multiple devices and there is no truly build once – deploy everywhere tools for building native mobile applications, maintaining multiple code-base and their versions is nightmare after few roll outs. The mobile platforms such as iPhone might need only one codebase to support iTouch or iPhone. But platforms such as WebOS or Android need more effort only because they are out there on more variety of devices than iPhone, number may be less or equal!

If the application targets more varied user base, platforms such as Blackberry, Symbian, BREW also come into the picture! So again on this front, native apps score lesser than mobile web application.

Deployment Woes?
It used to be very simple to deploy the web sites than the actual applications – may it be a desktop app or even worse the mobile app. But now the situation is changing.  With the emerging app stores and the market places, application deployment or upgrades have become simpler than they used to be. Solution provide can depend on the carrier or device manufacturer provided app store infrastructure to safely and reliably deploy their applications. iPhone is going to support the enterprise app store which means the applications can be even distributed to the pre-defined set of enterprise users!

But still today out there, we have some devices (Symbian, J2ME), which are still not supporting the app store in the way it does on iPhone or Android.  Hence, for some contexts (e.g. for confidential content or services, primitive mobile platforms), mobile web sites might remain the only available option, at least for platforms where the installation of third-party applications is restricted.

Business Nature
Native applications (when distributed through a store) provide an easy way to make money since they make it relatively easy for the user to pay and the provider to be paid — although it was noted that it is increasing difficult to be profitable in a market where the prices and the individual applications visibility are brought down by the number of available applications.

Several people noted that it was possible to get relatively easy user payments for mobile Web provided services (e.g. through premium SMS or through the mobile operator bill), but that they required a lot of interactions with operators.

Advertising was obviously a model available to both channels when providing free applications.

In both cases, the application can serve as additional value to an existing service and thus not require payment of any sort.

Another factor that is considered under business nature is - Consumer Vs Enterprise (market reach) and discoverability of the application. The consumer applications mostly need to be reached to the end users who have their own likes and dislikes about he phones and platform. Service provider or the phone manufacture generally leads the phone adoption. A pure consumer application (e.g. game, social networking app) needs to support multiple devices that are out there in the market. Moreover the every phone should utilize the best of available resources. So in some of the scenarios where user experience is not highly important, the mobile websites do just perfect. For the consumers, applications stores are obviously the main source of discoverability for mobile applications.

For the enterprise users, where you mostly know your user base and have control on what devices or platforms to support, making the decision to build a native phone based app is much easier. More so because enterprise wants to control its user’s access to the information and secure it from the outside world, native apps serve the best purpose.

Performance of the application is key factor when it comes to the more demanding user base. For them as long as the response times and user experience is smooth, they generally do not bother if that is a native app or mobile website. As long as they get the desired performance, its all good for them.

It’s a general observation that, native mobile applications tend to be more performance enhanced than mobile websites. For the various reasons that include – network availability, service standard, access to hardware accelerated APIs to do heavy tasks on the phone, native apps often win over the mobile web based applications.

The hope is that with improvement of the network infrastructure and technological advance such as 4G connectivity, a bigger barrier to mobile enabled websites will reduce. But until such time, native apps will be working at the forefront.

Another reason for native apps to give better performance is their ability to do certain tasks locally. Mobile websites depend on the server for most of the labor work. But with latest mobile browsers such as Opera and Safari, with support from HTML5 implementation, mobile websites are gathering the momentum.

Development Efforts
If you ask me, my experience is that developing a given application as a Web site or as a native application requires almost same amount of effort, unless you are talking more number of devices to and platforms to be supported than number of browsers and display sizes!

It is also seen that there are more number of purely web developers out in the market than mobile application developers. So it is obvious to get better web developers for far cheaper cost than mobile developers. Mobile development often demands specialized knowledge and skills. Mobile application programming is just a different thing than writing any other programs!

Control on the Device/ Use of platform specific features
This one – at least on today’s date – can be done better only on native mobile app. The most fruitful use of device's resources that include native alarms, accelerometer, GPS, Radio System, File System, connection control, local storage, access to peripheral devices and non-GPRS wireless communication are best done on the native mobile app.

While Web technologies are catching up with access to more advanced capabilities (through HTML5), they still fall behind the possibilities that are endless in native applications. Its being explored to allow use of scripting language to call native platform APIs from the HTML5 pages. If this becomes reality, the mobile web applications would be as good as native apps. of course, the standards and specifications needs to be implemented by every manufacturer/ platform developer!

The basic assumption of the native mobile applications is they are capable of working in online-offline mode. Of course unless developer makes it always connected! The application is hence always available to the end user when they need. Most of the times these applications are architected such that the most relevant information is cached on the device. The application makes the trip to server only when it is absolutely necessary. As the saying goes – the best-connected applications are those who use lesser of the connectivity!

On the other hand the mobile websites need to be connected all the time. They just cannot cache any data locally other than what browser does. But again, HTML5 is providing another way to store the data locally – to give developers ability to store and interact with the data even when the device is not online. (By the way, I am so impressed with HTML5 that, I am planning to write my next blog on HTML5.)

Following table summarizes the basic comparison and scoring –

Source: MobileTech, CloudFour

Winner, who?
Now after reviewing the major factors that affect the decision to build a native mobile application or mobile web based application, I think, it really depends on the nature of solution that would bring in optimum output or add value to the enterprise/ consumer.

In my opinion, where the usability, device control, availability and security are of utmost importance, and the target user base is known – the application should be the native mobile application.

When it comes to reaching the mass users and the end user devices are of varied platforms, displays, mobile web applications serve best.

In some of the past surveys, it is found that, people do spend more time using the phones application that phone browser. One of the primary reasons for this was amateur web browser. Today’s smart phone browsers are better and closer to the desktop browsers!

Gartner believes this will be the case in the near future as well:
In mature markets, the mobile web, along with associated web adaptation tools, will be a leading technology for B2C mobile applications through 2012, and should be part of every organization's B2C technology portfolio. (Gartner, 2010)
The Hybrid Approach – the best of both the worlds!
There is another school of thought – why not to build an hybrid application that converges both the approaches in one? With the use of HTML5 support on the mobile, writing an interactive native application that makes use of content that is specially designed for smaller form factor via in-built browser, best of both the world can be achieved.

Many native applications already interact with the web one way or another, e.g. to get and publish data for their users; mobile applications incorporating web content. They add the mobile browser to their screens so that they can render the existing contents from the server in the WebView. The news feed apps is best examples of this.

Some of the tools such as PhoneGap allow developers build the apps that make use of web widgets run-time engines and other scripting languages.