← World

Mobile Internet Applications: HTML Websites vs Native Phone Apps for User Interface Efficiency

←Blog ·

In software application development, the first decision is always the selection of a programming language and platform to build on. With specific requirements to achieve a task, you can compare potential platforms for their benefits and limitations for your objective.

What happened to the Desktop Application?

Remember when the term "app" referred to desktop applications like word processing, image / video editing, productivity tools, games, etc?

Recently AOL sold Winamp, a highly adored old-school desktop app for playing mp3's. Besides your basic offline tools for creating, writing, drawing, drafting, multimedia production, etc.. what desktop app can't you live without? If it's not your web browser itself, I'm sure it requires the internet to be used. Tools like productivity, product management and knowledge collaboration with teams isn't usually effective without the internet.

When Apple released the first iPhone, developers were clamoring to build apps for the device. They were told to embrace the most unique feature of the mobile phone, it's full web browser. At the time the standard for mobile web dev was the very basic WAP platform, so a full browser was an amazing delight.

Of course native applications were inevitable if for the gaming contingent alone. Games are highly custom applications that require the most performance and flexibility a platform has to offer. Unfortunately, it's still not the first choice to build a game in the browser, but the technology is getting better.

Although Apple started by promoting HTML5 mobile applications, the release of their App Store revealed two very important advantages:
  1. App Design and Usability Standardization. Using the same interface components creates familiarity for the users and raises the bar for quality out of the gate.
  2. Distribution through their store to millions of users, with credit cards on file.
  3. Also worth mentioning is notifications that are some equivalent to email for internet marketing.
This has attracted many applications to be developed that do nothing more than a webpage.

Being a big fan of the internet, and a hack web dev, the following is my criteria for a native mobile app.
  • Does the application require native API or hardware access. There's been progress providing the browser this same features, but for instance raw access to your camera will require a native application.
  • Does the application require the internet? If your application necessarily requires the internet like say, a newspaper, or even twitter, I'm not sure that I understand the benefit as a user. Sure the interface looks appy, and you get a nice bookmark on the home screen, but often it's just a glorified website.

What's wrong with apps that are just glorified websites?

Well there are a few limitations that come with joining the app store.
  • Being accepted by Apple's high standards.
  • Longer development cycles that end with another approval process makes maintenance more difficult.
  • Maintaining your app with operating system updates and changes isn't as controllable as the open web.
  • Websites now offer full features that make them suitable as desktop applications such as offline support.
I'm sure you've all experienced visiting your favorite social network, which will have both a mobile friendly & formatted HTML website, as well as a native application on multiple mobile platforms.

As Jeff Atwood put it, "I love phone apps for websites because it is just so much fun to learn two totally different and incompatible UIs for doing the same things".

There's even a blog dedicated to how annoying the application pushers are based on the idea, "Any modal message—full-screen or alert—that interrupts user flow to ask them to download your app suffers from #doorslam #ux antipattern".

When Google announced ChomeOS, the big question was, "What about all the Android apps we're building?". They're not going to work on a Chrome Book.

It also appears that the explosive growth of the App Store has subsided and we're all starting to feel app fatigue as this Forbes contributor says, "I’ve lost track of most of the Apps I’ve downloaded, like stale forgotten browser bookmarks".

I also just noticed a headline that Facebook updated it's native app that now requests access to your text messages, but no one knows why. Just another example of taking unnecessary liberties - currently a hot topic.

The advantages of building for the native web.

  • Standards based, universal platform. It's the most deployed software development platform in the world that I know of. Not everyone has windows, or a mac, java or flash, but everyone has a web browser that speaks HTML and JavaScript.
  • Decentralized architecture levels the playing field around the world without any approval processes. The internet is the core technology to build on top of. Why would you build in a walled garden like AOL's old keyword pages, when you could build a website? The same could be said for facebook or iOS applications.
  • You don't have to ask permission, or jump through hoops to publish / ship your product on the web. That includes regular maintenance or updates. I lean toward a platform without limitation or gatekeepers for it's creative freedom, where I think the biggest innovations happens.
I'll stop here for now, and perhaps elaborate later, but I wanted to write out my feelings on the topic as it seems practical for the state of software development. The first and most difficult step can be choosing a development platform, hopefully this will help give you a framework to decide.