May 24, 2013

What are hybrid apps?

About 4 seconds after you decide to build an app, you will this dilemma: To build a native app or a mobile web app? There is a middle ground, the hybrid app!

Posted on December 10, 2012 by in Tech

About 4 seconds after you decide you are going to build an app, you will face the classic Appster dilemma:

To build a native app or to build a mobile web app?

(If you think ‘native’ has anything to do with indigenous peoples of North America, you should read this article first)

If you go the native route, you benefit from building a ‘real’ app that lives and breathes right on the phone and has access to it’s GPS, camera, and file system. But native apps can only run on the platform you built it for, so if you wanted to migrate your native iPhone app to Android, you will need to start from scratch!

If you go mobile web, your app is essentially a web site formatted for a mobile screen. You code it once in HTML/Javascript/CSS, and voila, it runs on any phone with a modern browser. That’s the rub, it runs in a browser. It’s slow, doesn’t look or feel like an app, and requires an internet connection to work. Not to mention you don’t get access to the same capabilities of the phone that a native app can.

If you are beset by the choice, let me introduce you to the ‘hybrid app’.

Yup, in the spirit of all things compromise, a ‘hybrid app’ is the bastard child of the app world. You download and install these apps just like you would a native app, and they run locally on your phone as a native app. However, the app itself is written in a flavor of HTML/CSS/JavaScript much like a mobile web app, yet you still have the ability to access all of the phone’s functionality. Not to mention they can run on almost any platform!

Whaaaat? A native app written in HTML?! How can that be?

Well, it’s easy. A hybrid app allows you to have the platform independence of a mobile web app, without needing to be run in a browser and have an internet connection. A hybrid app works through the use of middle ware framework like PhoneGap or Trigger.io. These frameworks essentially hosts and runs app code written in HTML/CSS/Javascript within a generic native app container. This native app container exposes access to the phone’s camera, GPS,  and other hardware to app code it hosts through custom APIs that are accessible from Javascript.

Hybdrid apps are native apps that host HTML/Javascript written app logic.

Suddenly with a hybrid app, you can write the entire app in HTML/Javascript/CSS but still have it run locally as a native app and have access to all the functionality that native apps traditionally have a monopoly on. Plus, these apps can be run on any smartphone for which the middleware supports!

If it sounds too good to be true, it probably is.

Hybrid apps are no panacea.  An app written in HTML/Javascript will not be as performant as one written in a native framework, and it’s something people will notice. Do you remember the old Facebook app from earlier this year? Remember how it lagged when you pressed buttons and generally felt like it was written by rhesus monkey? Well that’s because it was a hybrid app. In fact, so many people complained about it that Facebook was ultimately forced to ditch its hybrid app framework in favor of natively written apps!

Furthermore, by using a middleware framework like PhoneGap or Trigger.io, you introduce a dependency between your app and a 3rd party vendor. If there is a bug in your app, you now need to ask yourself where is the bug? Is it in your app’s HTML/Javascript? Is it a bug in the PhoneGap framework or the operating system itself? Or is it an issue in how all 3 work together? Plus, there is far more documentation on building apps in Objective-C and JAVA than there ever will be for any of the 3rd party frameworks.

Bobby Gill (64 Posts)

Bobby Gill is Editor-in-Chief of IdeaToAppster.com, author of "Appsters: A Beginner's Guide to App Entrepreneurship" and the founder of Blue Label Labs, a mobile development lab based in New York and Seattle. In addition to building its own apps, Blue Label Labs provides design and engineering services to mobile app clients across the world. Prior to starting Blue Label Labs, Bobby spent 4 years at Microsoft as a Program Manager within the Forefront Identity Manager (FIM) product group. During this time, Bobby served as an engineering and architectural lead for the FIM server specializing in database and web service design. After Microsoft, Bobby worked as a Summer Associate at McKinsey & Co. where he was part of a service operations enhancement program within the high-tech industry. Bobby holds a Bachelor of Mathematics specializing in Computer Science from the University of Waterloo and a Masters in Business Administration from Columbia Business School.


Tags: , , ,

  • John Butchum

    One thing about web apps is that they can make use of live feeds, which has interesting possibilities. My favorite web app is http://headbodyfeet.com