HML5 or Native for Mobile

We are in an interesting time.  A tweener.

Native is when you build your mobile app using Objective C (IOS) or Java (Android) or Visual Studio (Microsoft).  HTML5 is when you build a wrapper for your app in native code, but all of the functionality is built using HTML, CSS and JavaScript (a.k.a. HTML5).

The benefits of native are that you get the highest performance capabilities.  You can use all of the devices capabilities like the accelerometer, camera, location and storage.  Most apps are built this way.

The down side, first and foremost, is that any code you write for one platform is generally useless on other platforms.  So you will need to build the app multiple times, assuming you want to support Android, Microsoft and IOS.

It is debateable how “difficult” native code is versus HTML5.  I’ll leave that argument out.

This can be “roll your own” or using a framework like Sencha Touch.  The benefits here are that you can reuse code.  Javascript works fairly well cross-platform.  The negative rap on HTML5 is that you may have performance limitations.

The Future
To my eye, it seems that HTML5 is getting better, faster and more powerful.  The future is HTML5.  The problem is that I need to build my app now, not in the future.  Should I use HTML5 because that is where the puck is going? or use native because that is where the puck is now.  How long does a mobile app last before it is replaced?

We are in a tweener time where the old is still powerful, but the new is on the rise.  This is the most annoying of times to build something. The good news is that mobile apps don’t last more than a few years.  We aren’t building the great pyramids in Egypt, meant to last a millenia.

Interestingly, many consumer apps have been going native.  I am not sure this is a good idea, but it’s happening.  I’d lean towards HTML5 personally.

We are truly cursed to be developing code in interesting times.

4 replies on “HML5 or Native for Mobile”

Thought I’d check in on you and see what you’re talking about these days 🙂 I deal with this issue quite a bit.

I would absolutely say that HTML is getting faster. As computers and devices become faster themselves you will begin to notice that using sencha touch, appcelorator, or phonegap will produce better results. I’ve def noticed an increase from iphone 4 to 5.

Also the rise of client side MVCs like emberjs and (my favorite) AngularJS make it much easier to produce large scale web apps on frameworks like phonegap because of natively deep linking functionality . AngularJS also gives you access to touch events.

From a usability standpoint. I would only go native if: what I was producing required native speed, but if what your producing is fairly simple and is more a platform for displaying information (not a game) you can probably get away with phonegap + javascript MVC and if done correctly no one would know.

Whatya think?