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:

8 thoughts on “The weird state of mobile web apps

  1. Well, call me a conspiracy theorist, but I find that it’s very convenient for a certain device manufacturer for html5 to be slower. That way, to build efficient apps for their devices, you have to use their proprietary technology, and publish them through their proprietary store…

    1. Well, if I take your meaning, Apple’s web developer tools for HTML 5 since iOS6 on the iPad/iPhone are extremely powerful. Their documentation is really good (not quite as good as MDN though) and guess what, HTML5 features actually work. We do games in HTML5 and Apple devices hardly ever cause us issues, it’s the ‘other’ platform that causes me to lose 5 minutes of my life every other day.

    2. I wouldn’t suggest that you’re a conspiracy theorist at all. Economics rule everything, and when the fox is in charge of the hen house, you can rest assured that you won’t be eating chicken.

  2. I’m also developing vanilla HTML5 for Android. I copied a tiny bit of PhoneGap, added AngularJS, but created my own CSS to look like native Android 4.0. Only problem: Performance on a low end Android phone is really messy, even for a simple to-do list app.

  3. If Sencha Touch is anything like their Extjs product I’d gladly, happily, joyously throw away HTML5 in favor of native if Sencha was the only option provided for building a mobile app. Easily some of the worst software I’ve ever encountered.

  4. Are the memory management problems of Linkedin App related to misbehavior of the webkit rendering engine or due to bad design?

  5. Sencha looks amazing!!! I tried it on my SGS2 and it works so good. The fb example is a good one as my phone is not the quickest and most powerful and I rarely use the app. Web apps and html5 is so convenient today- no reason to stop. I hope companies will not abandon it just yet, or at all.
    I started using and working in not long ago and web apps are a great portion of the experience provided.

Comments are closed.