Mobile Web Apps or Native Mobile Apps?

Native Mobile App - HTML5 Mobile Site ComparisonWhen it comes to developing an application for mobile users, there are two routes to reach users. A dedicated mobile software application like the ones you find in the Apple App Store or Google Android Marketplace is one route, or an HTML Web site optimized for mobile devices like Google.com, latimes.com, or one of many popular blogs.

Both routes have advantages and disadvantages. Mobile software applications run fast. They are compiled and use all the hardware acceleration features built into the phone. 3D games, for instance, run very fast on native apps. WebGL does offer a glimmer of hope for Web-based games, but that is years away. I also contend that software programmers are better programmers than HTML / Web front-end programmers. More experienced programmers write better code which results in faster applications. For example, there is a much higher learning curve when writing Objective C and Java code compared with HTML and Javascript. They don’t use the browser chrome (or frame) so apps can display full screen. One of the biggest advantages is the tie-in with hardware components. Programmers can access a compass, accelerometers, GPS with location information, cameras, pictures, address book, video camera to enable video chat, and more.

Chrome-less Native App- Digitally Imported iPhone App

Chrome-less Native App

Some of my favorite native apps for the iPhone include the Digitally Imported Radio app and Dungeon Hunter 3D game can’t be created on a mobile Web app. The radio app streams audio while detecting if a user is on WiFi or 3G, and allows multitasking (streaming radio while browsing Web or e-mail). The 3D game uses complex graphics APIs not possible on the Web right now. These hardware services simply aren’t available to Web developers. That is changing, however.

The Case for HTML5 Web Apps

Multi-touch gestures and location information is available on the iPhone, and possibly for Android phones as well. Carl Sjogreen of Nextstop, a location service based that was recently acquired by Facebook, talks about why his team decided to use HTML5 instead of a native iPhone app:

Other companies are also stepping up development of HTML5-enabled mobile sites. YouTube just overhauled its mobile site and uses HTML5 video tags to power its video delivery along with a better designed user interface. Here’s what Alex Nicolaou, Engineering Manager, Google Mobile says on this Google Code Blog post

Enter HTML5. We’re very excited about the evolving HTML5 standard because it enables mobile and desktop website designers to deliver the advantages of client-side and server side development to their users simultaneously! New APIs let web applications start offline and store data on the client. The canvas API lets you draw complex user interfaces, or you can use advanced CSS tricks to get the browser to render a rich UI. In addition, the W3C Geolocation API is being adopted and implemented by browser developers, enabling entire new categories of web applications to be built. The benefits are clear: you can develop fantastic new applications, benefit from server-side analytics and iteration to deliver features that your users want, and know that offline functionality keeps things running as the user moves in and out of coverage. Your users can enjoy fast, capable web apps that they can access from any device, without the need to copy their data from place to place or worry about installing software or being online.

iPhone HTML5 mobile site

KenMorico.com Mobile Site

There are many reasons why I prefer a straight HTML Web app. I’ve built a mobile version of my own site, KenMorico.com, so I can tell you from experience the many benefits of using a mobile HTML5 Web app. First, the code can be integrated with the code for your main Web site or Web application. All you are doing is checking which device users are coming from and disabling site features using Javascript. I tailor features on my site for desktop, iPad, and iPhone / Android phones. My full site uses HTML5 video as part of the page background. Currently, iPhones can’t render the video without displaying it fullscreen in its built-in video player. Fine. I just don’t show the videos at all to iPhone users. I also have a slideshow I show to users on desktops / laptops. Phone users won’t be able to see it, but iPad users will because the iPad is slightly more capable than the iPhone.

Note too that to test native apps you need to BUY THE HARDWARE. There are thousands of combinations of hardware – especially Android phones. Most people I know only have one smartphone. With HTML5, you are targeting a screen resolution, not different operating systems or hardware features. Setting up a testing center for Android, iOS, Windows Phone, and Blackberry will be a nightmare.

Rapid Mobile Development with HTML5

HTML5 Web apps take far less time to develop, test, and launch. You don’t need to go through an App store to get it approved. You don’t need to learn multiple languages to develop a separate app. You don’t have to worry about wasting your time, because it’s more likely HTML5 Web apps will replace native apps versus the other way around. However, native apps allow for a lot of cool features and a consistent visual appearance. HTML5 Web apps will mostly look the same on all browsers, but there could be variances here and there. This is because there are hundreds of browsers, versus two major phone operating systems – Apple iPhone iOs and Google Android. This still is one of the major benefits of the now controversial Adobe Flash technologies. Consistent layout design across computers.

It’s Always About the Money, Right?

Michael Calore wrote a nice comparison table of native app vs Web app development considerations in this webmonkey article. He points out the way you can advertise on the platforms differ. With much higher success rates for online advertising using Apple’s new iAd advertising platform – developers may be persuaded to develop native apps only simply for the monetary factor. This LATimes blog post highlights Nissan’s experience with iAds:

Nissan, which created a multilayer interactive ad for its electric LEAF car, said customers spent an average of 90 seconds with the ad — 10 times longer than interaction times for comparable online ads. Moreover, people chose to “tap” on the Leaf iAd five times more frequently than they clicked on regular online display ads for the Leaf.

Also consider it is much easier for developers to monetize native apps because users can purchase the apps immediately.

For now, I expect many of you to surf my HTML5 mobile site while listening to music from a multi-tasking enabled native app. That’s the world now. And it works.