There are countless of articles debating going native or HTML5 for your next mobile app. But with Linkedin recently deciding to going back to native I am really starting to ask myself if HTML5 is still part of the equation for mobile apps at the current moment. Let’s look at a small retrospective & see what conclusions we can extract of the mobile web current state.

Linkedin reverting to native app = broken heart

Linkedin had one of the most polish html5 iPad app in the market but they recently decided to kill it off after countless of articles describing HTML5 as a viable solution for mobile. What triggered that 180 on their position? Well contrary to popular believes (that all html5 apps are slow), it’s not speed & animations that made them rollback, but.. memory management. Here’s how Kiran, LinkedIn’s senior director for mobile engineering puts it:

“The primary reason for that is, we’re seeing that more and more people are spending more time in the app, and the app is running out of memory. It’s not performance issues, like speed or rendering, but it’s still a big problem.”

Read more at VentureBeat

Unfortunately they never really explain what tools they use to bake a native apps from their html5 counterpart, so without more informations it’s pretty hard to make anything of this. One unfortunate truth is that dev tools for mobile web apps are in it’s infancy, and there is not quite anything like what native apps can provide.

So with Facebook and LinkedIn quitting the HTML5 boat where does that put us? Well pretty much in limbo, that tells us that most publicly listed companies do not think that HTML5 is ready for primetime and could be associated as a risk for still quite some times.

Looking further

When Zuck rolled back to native, a small company called Sencha decided to push back a little and released a video showing one of their html5 app running against the current native iphone app. Sencha has a framework called Sencha Touch, that is pretty much everything you need to make a mobile web apps that looks native. So let’s check that video:

The Making of Fastbook: An HTML5 Love Story.

Pretty impressive, I personally tested Sencha touch a long time ago and there was a lot of problems on Android, that being said Android versions 3.0 and less were a problem in themselves, the hardware quality was bad and there were lots of bugs and missing implementation in the webkit browser. The situation with Android & Sencha touch seems to have much improved.

Okay, so you are telling me I can make a mobile web app, but other big companies are rolling back but it’s possible but I probably need a big framework to do it?

Well…. not exactly. Like anything else doing an html5 app has advantages & disavantages, and it is sometime appropriate. The principal advantage is you get an app that works on Android, iPhone & Blackberry with minimal efforts with technologies you already know. You made websites when IE6 was around? Well it’s much easier getting something to work on 3 webkit based browsers.

When should I consider doing a mobile web app?

Here a few pointers:

You have no budget to hire android, ios & blackberry devs but want big market penetration

You are not reinventing a whole new navigation system full of animations

Your app is principally text based

You are still in the prototype stage where you need to iterate quickly

What about CakeMail?

If you looked around this blog recently you probably know hat I am currently working on the first iteration of the CakeMail mobile app. Our current strategy is to release a web version first, iterate a second version (ameliorations) and then integrate this app into PhoneGap and package it for app stores if all goes well.

For that to becomes to fruition I had to build quite a few components for backbone.js that handle different states in the pages(animations, topbar, menu, popin & etc). My plan was to release those components at Js-Montreal this month but life got in the way and I won’t be doing that.

Building a mobile web apps from scratch

It’s not that it is particularly hard, it is just fucking html & javascript in the end, but you definitely need to work out some issues you don’t generally encounter. I probably invested about 80 hours for now in my backbone.js mobile components, and probably need to invest a bit more to make then really solid on ios and android(4.0+).

Why not use jQuery mobile or Sencha? Well I don’t like to stand on top of the next guy, not really understanding what’s happening in the background. Plus the Cake app is pretty small & I did not see the advantage, specially performance wise, of using a big framework. One interesting thing with backbone is that you can really “bend it” any way you want and it’s something I appreciate a lot, my components try to follow the same philosophy.

I plan to do a presentation (probably next month) at js-montreal, if your interested at getting started in mobile web development and you don’t want to be dependant of Sencha or jQuery , you should difinately check that out, I got tons of tips & tricks. Here a small taste of my very unfinished slides: