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.

Thursday, April 8, 2010

Apple announces iPhone OS 4.0

In his trademark style, Steve Jobs unveiled the iPhone OS 4.0 at Apple Headquarters. After the longest wait, Apple declared various new features and API support for its "only" smart phone iPhone! I followed various tweets and news, online coverages of the event and prepared this summary.

Steve Jobs and his team @ Apple has continued to keep millions of its fans surprising with every new technology they bring into the market. The recent launch of iPad took the apple stock at all time high $240 (6:13pm ET on 4/8/2010). The iPad launch was extremely successful with 450,000 units sold in just less than two weeks. And now as usual keeping its March tradition of announcing new OS - iPhone 4.0 is announced to debut in this summer - possibly in June-July time frame.

Apple described the iPhone OS 4.0 features as -
  • Around 1500 new developer APIs (can be seen from developer portal), Over 2000 APIs for hardware accelerated math functions
  • Developers can access Calendar, Photo Library, Camera Data, Quick Look, App directed SMS
  • Developers shall get access to the testing tools that are currently used to validate the apps on app store!
  • Over 100 new features for the end users including - Play list creation from device, 5x zoom camera, ability to change home screen wallpaper (same as in iPad), Game Center to gift the apps, unified mailbox and many more!
Steve Jobs described the major features exclusively in the event today. They include - Multitasking, enhanced location services, Local Push Notifications (reminders to wake up apps), Background task completion, folder arrangement on the home screen, Unified mailbox, iBooks on iPhone, Mobile device management for Enterprise users and IT, Game Center and the most exciting of all the iAd.

Multitasking Support
Though the multitasking support is announced in iPhone OS is a bit late compared to other competitor platforms such as Android and Web OS. The multitasking is not the multitasking we see on traditional mobiles or desktops. Its a different kind of implementation. Basically the multitasking is done only in the areas where you need VOIP Access, Audio Services and Connectivity requirements. For example, while you make a Skype call, you can browser or run other applications. Or while browsing through your emails, you can listen to Pandora radio!

The background task completion means ability to complete the connection transaction even after the app is terminated/ sent to background. For example, if your application is uploading or downloading data from your server, it can continue to do that even while in the background. The connection thread can only keep running. This will be useful when you want to complete the tasks that can be done only while you are connected and does not need any human intervention.

Apple claims this is unique way of having multitasking in the iPhone. You can fast switch between the applications with the double tap of the home button. The same feel of expose in the Mac can be seen - not exactly but but somewhat like it!

In short, only the important services that most widely needed to be done in the background are allowed - not everything you want to do in the background unlike Android.

True Enterprise Support
With the apple provided mobile device management support in iPhone, its entry in the enterprise is going to be very smoother one. Until now, IT teams have faced issues integrating the iPhones in their networks. Almost every CXO using iPhone, they had a real tough time keeping up with their boss's demands without compromising the security. They were dependent on the third party solutions for these device management.

With the unified mailbox and multiple exchange account support, iPhone is going to be more friendly and seamless in usage for end user.

Support for VOIP apps and ability to send them in background while the connection is live, makes the enterprises to utilize the cost effective features of SkypeIn and Vonage Mobile kind of services. Of course its interesting to watch how the network carrier will cope up with these.

Support for SSL based VPN, ability to push the enterprise application remotely from enterprise app stores are few more highlights of the true enterprise support. API support for developers to encrypt the data inside the application is one good item addressed from everyone's wish list!

Local Push Notifications
Looking at the current application usage trends, no wonder why Apple added the local push notifications! In order to give developers the ability to wake up the applications makes the features such as Alarms and reminders extremely easy to implement. With the current APNS it was very much waste of the feature. I personally never allowed any app to use the PUSH notifications except the mails. Its so much power thirsty that, i had to charge my phone twice a day!

New Addition - Game Center
The new concept of Game center has been brought in to encourage the gaming enthusiasts! This feature will not be available until later this year. It will allow you pair with other users.

After iBook, now iAd!
iBookStore was the latest addition for iPad, is now availabe for iPhone too. Steve Jobs introduced the new HTML5 based iAd concept. Using iAd, developers can host their digital contents and adverts on the Apple server to be delivered on to the phone. The iAd will allow user to browse through the adverts without quitting the app - preview or buying the products from the advert itself is going to be new experience for the users. The targeted adverts and may be user specific promotions will be new market to explore. Apple claims the iAd to be interactive adverts with emotions!

And the worst part -
The iPhone OS upgrade does not seem to be bringing in all these features to all the iPhones. I mean, only the iPhone 3GS and iPod touch 3rd generation are going to enjoy full feature set of of the new OS. the old iPod Touch and iPhone from first generation will not even be eligible for the upgrade. The second generation iPod Touch and iPhone shall get the upgrade but will not do any multitasking. The latest iPhone 3GS shall ahve all of this.

This to me suggests that, the new iPhone hardware is going to come! But unfortunately my iPod touch from last year is going to only enjoy limited features.

My hands on the SDK and BETA firmware upgrade
I downloaded the SDK 4.0 BETA and the firmware upgrade from Apple developer website today. Some of our apps work without any changes. But i observed few freezing on the launch itself. One even crashed the simulator!

I did the firmware upgrade on my iPod Touch (2G). It has a nice home screen, enhanced folder feature on the menu icons and nice iPod features to create my own playlist, folder view of the playlist! I like it :)

I will post more soon after i explore the SDK with our existing applications. Below are some screen shots from my iPod touch after upgrading to latest firmware.