Smartphones

A few thoughts on mobile web vs. rich app

One of the very first questions we face when we begin planning to build an application is whether to do mobile web or rich app development.

As a mobile developer, I get asked my opinion on mobile web vs. rich app development quite often, and understandably so. For most mobile developers, this is one of the very first questions we face when we begin planning to build an application. And to be honest, there's really no "correct" answer to the question. If I absolutely had to break it down to a couple distinct criteria, the decision would likely be based on the following:

  • OS/Hardware-specific feature requirements
  • Development budget
  • Development timeline
  • Target audience

Before I get too much further, I feel I ought to explain that a vast majority of my mobile development experience has been with Android, so you'll likely find that most of my examples revolve around it. With that in mind, let's carry on.

OS/Hardware-specific feature requirements

HTML5 and native mobile browsers are quickly getting to the point where the gap is quickly closing between what can be accomplished from inside a browser vs. what can be done from a native (rich) application. However, there is still one significant feature that separates the two in my opinion: push notifications.

I'm not very familiar with the push notification system for iOS, but I have implemented Cloud-to-Device Messaging (C2DM) for Android several times, and it is incredibly useful for server-to-device communication. You can use them to get a device to "call home," start a process running on the device, or even deliver a short message. The only feature that comes close to this in HTML5 is the WebSocket. But if the user closes the browser, your channel of communication is severed.

Another reason why you might choose to build a rich app is because your requirements demand a long-running service that persists in the background. A background service may be needed  for indefinite location tracking, device monitoring, or lengthy calculations/processes.

One of the features I like most about Android as a developer is the way intents were designed. Intents allow you to not only integrate other applications into your own, but also integrate your application into others. A good example of the prior scenario would be launching a thrid party barcode scanner application from within your own app and receiving a UPC code back. As far as the latter situation is concerned, many apps will allow you to "share" content with other apps, so it's possible to get your app to appear in the list of possible choices (for instance "sharing" a place from within Google Maps). This unique interoperability is definitely a very strong case to build a native Android application over a web app.

Development budget and timeline

I doubt there are very many developers out there who'd disagree with me when I say that mobile web development is grossly cheaper than developing a native rich app. Granted, 95% of my development experience is web development, so it's fair to say that it's what I know best. However, the fact that you can develop once and automatically target every web-enabled platform is quite a powerful one. Compare this to developing, say, an Android, iPhone, and Blackberry app separately, and it's easy to see the advantage here.

As far as development timeline is concerned, I don't think I need to say much more. Obviously developing one web app is quicker than developing multiple rich apps, so let's move along.

Target audience

OK, I'll admit it. I'm an Android fanboy. So when I first started doing mobile development, I completely neglected iOS and only focused on Android. No wait, let me try that again. I completely thumbed my nose at iOS and all my iOS-using friends. It didn't take me long, however, to realize that if I was really serious about being a full-time mobile developer, I simply could not ignore one of the top two mobile OSs, no matter how much I disagreed with Apple's philosophy or believed in Android's success.

So, the easiest and quickest thing for me to do was develop a mobile web site for my iOS-toting friends. The result was actually quite impressive, as I had created a nearly identical copy of my Android app for the web using webkit transforms via some javascript I found/borrowed/modified for my own purposes, to create independently scrolling areas (something that is not easy to accomplish with mobile web).

At first, my peers were pleased that they now had a way to use an app they had been begging me to port for months. But as soon as the novelty wore off, they quickly realized that the mobile web version just wasn't quite as slick as a native rich app could be. Even though they could create a bookmark on their home screen to make it appear as a native app, the differences were still noticeable (namely the lack of push notifications, which I get around by sending emails).

Conclusion

Now I've presented a select few arguments on both sides of the case. Clearly there are a lot more factors that go into this decision, but I feel like the ones I've mentioned have been the biggest determining factors in my own personal choices. There really is no right or wrong answer at this point, and at the rate the mobile tech industry is evolving, everything I have just said may be moot tomorrow.

As things stand today, I feel that the best approach is to target both mobile web and rich apps if all your determining factors allow for it. But this is clearly a subject that will need consistent reevaluation as time progresses. Eric Schmidt himself has been quoted as saying "HTML5 is the way almost all applications will be built, including for phones" so I'm confident in saying this is a topic to keep your eye on.

On a final note, I encourage everyone reading this article to watch this video if the subject matter discussed piques your interest. It's the Android vs HTML5 session from Google I/O and I discovered while writing this article that it was uploaded to Youtube, as it was not streamed live from Google I/O. Hopefully I have answered a few questions for you, and if not feel free to sound off in the comments!

About

Kyle is a senior software engineer specializing in web/Android development living in Austin TX. He's a self-professed "gadget freak" whose passion for mobile devices drove him to jump into the mobile industry in 2010. He enjoys the fast-paced nature ...

13 comments
Margaret_Pell
Margaret_Pell

through out the whole pages I gathered these two points: 1. The mobile applications which combines internet data and my local private data will require rich mobile application any way. 2. Since mobile screen is small, work-flow on bigger screens will have to divided many more smaller screens, so it is better to develop rich mobile application, if budget permits.

selina.dsouza
selina.dsouza

Our team of mobile consultants did a webinar earlier this month on "5 things CIOs need to know before mobile-enabling" and one significant aspect covered in depth was the native vs mobile web question. If you'd like to view the webinar, click here: https://www1.gotomeeting.com/register/993918880 Feel free to drop me a note at: selina.dsouza@aspiresys.com if you need further assistance on your mobile journey! Thanks, Selina www.aspiresys.com

dnox1978
dnox1978

thumbs up for "archieeddison: Develop once, develop well, develop Web!" There are still applications for various reasons should be a rich app, but most of them can be done via the web application and it's much better when they get more os independent, so it does not matter if you have Linux, BSD, IOS, Android, Symbian and so on. I am a big fan of thin clients, cloud app and so on.

kvish
kvish

I agree with all view points of the author. It is really very nice article. 1. The mobile applications which combines internet data and my local private data will require rich mobile application any way. 2. Since mobile screen is small, work-flow on bigger screens will have to divided many more smaller screens, so it is better to develop rich mobile application, if budget permits. -Vishwas

nzsly
nzsly

Another possible consideration might be the costs/time/heartache in getting your iphone app vs android app vs mobile web app live to your users. Hey Kyle how about porting your android app to native iOS :-)

archieeddison
archieeddison

This is a hot topic indeed, and something I hold very close to my heart! Per my fledgling blog post at http://archieeddison.wordpress.com/2011/04/02/mobile-phone-apps-are-dying/ I think HTML5 and web apps are going to become more the norm, and more rich functionality and new features will fill more gaps in due course. As you may not have expressed in your article, the target audience is actually probably the widest you'd ever have when developing for the web. Develop it once, develop it well, and the world could well be your oyster!

z06pilot
z06pilot

but would really like to see it modified to support tablets in landscape mode. It's a real downer to have an application force me to turn my Xoom to portrait mode, which I never use unless I'm forced too. Great app otherwise.

eyesak
eyesak

Good explanation of differences in HTML 5 vs. Rich App! Thanks for the article Android Management - Great new app! Track your devices, more... 2x.com/mobiledevicemanager

prush
prush

I used the ping.fm mobile web but you are limited in pic sharing, so you had to email it.. but with the pingdroid app, it uses the intent very well. The trend I've noticed is the main developers like ping.fm created the mobile web, and then let 3rd party developers create the web apps. So, it's a time-saving strategy to "outsource" the app development.

davidmp
davidmp

If you use a framework like PhoneGap, you would have the push notifications you are looking for, right?

Kasim_Ba
Kasim_Ba

Hi Selina, a webinar that can be only viewed under Windows2000 or higher?

Kyle.Miller
Kyle.Miller

I actually plan to do this for one of my apps. Time is my biggest barrier as of now as I need to learn Objective C and the iOS API. It's always best when you can get paid to learn on the job, unless it's something you're passionate about

Kyle.Miller
Kyle.Miller

I'm not sure if PhoneGap supports push notifications out of the box, but it would certainly be possible to add support for it yourself to the application created by PhoneGap