The slow climb of HTML5

27 Nov

The slow climb of HTML5

Many people I meet these days ask why I still use Flash as a base for development of applications and games. It is downright scary to hear that virtually all these people still don't know that you can author your apps in Actionscript and then easily cross-compile to very performant native code for iOS and Android. Targeting the desktop with Flash has been around for more than 10 years. Using AS3 as the language and Adobe AIR to export gives you great performance and access to really advanced tools that allows for proper debugging, even directly on the GPU.

Using this stack comes with an overhead, but I would say that it's only 5-15% slower than pure native code. Perception of speed is of course subjective, but my Arduino Companion app have now been installed on more than 60.000 devices and both major app stores show a 4.5 of 5 rating. This app is currently not using any form of GPU acceleration, but the users still love it. I am currently in the middle of a cross-platform game that IS using acceleration and I'm really happy with what I'm seeing this far.

When it comes to HTML5, I see lots of good stuff happening on the desktop. HTML5 has replaced Flash for many purposes on the desktop and I don't mind this. In fact, I encourage it. I've always been a huge fan of using the right tool for the job. That's why I switched Flashmagazine to HTML more than ten (!) years ago. Flash became big because there were no good alternatives and it's only natural that it's role should change.

HTML/JS/CSS is part of my toolset and it has always been that along with PHP for the serverside. However, if you are one of those that think that HTML5 is a good solution today, you should read this great article by Ben Savage of Spaceport.io. It summarises most of my experience from the mobile HTML5-game I made for NASA recently. My biggest problem with HTML-based apps is that they're slow and have little contact with the device they run on. I absolutely hate going to a website that asks me to install it "as an app". All this does is add a desktop shortcut and the poor developers can't even know if I already did install the shortcut. Due to the lack of this they keep nagging me with their stupid "install-me" dialogue every time I visit their site (yes - I'm looking at you Google Calendar).

I'm sure that omissions like this eventually will annoy enough mobile vendors so they create a way to reliably detect if a shortcut has already been installed. The problem is just that this is but one of many things that need to fall in place before HTML5 is really useful. I also got a shock recently when a friend bought a brand new MacBook Pro and Safari couldn't show the default HTML5 video. All he got was green flickering squares. The fix was simply to install Chrome, but this highlights a core point in Ben's article - browser vendors have no interest in making Browser apps really good.

My other experience is that doing an app as HTML5 adds development time. I've discussed this with others and their ballpark is about the same as mine. 30-50% extra time is required to make a good cross-platform HTML5-app. Most developers ignore mobile for this very reason, but come on... Isn't the whole point of HTML5 to get that extra reach? To actually make it work Mobile first and fully responsive?

So why do I still use the Flash Platform for apps and games? I use it to deliver on my promise of real crossplatform apps. I can use the very same code-base to make a game for iPhone, iPad, iPod, desktop, Facebook-apps, Web as well as all the funky flavors of Android. All I would want extra at the moment is Windows 8 support. That would make my toolkit complete.

Now if only Adobe could start telling the world how good this stack really is...

27 November 2012 at 6:39 pm

8 Responses to The slow climb of HTML5

  1. Joseph Labrecque 28 November 2012 at 12:36 am #

    Totally agree. My Flash:HTML&Friends; work ratio this past year is about 80:20. Same as it was last year. Same as it was 5 years ago.

    No reason to leave *any* platform behind if it still fills a need - Flash not only fills many needs, but conquers them. With all the new stuff Adobe is baking it will only get more fun and more productive:

    Stage3D / Starling / Away3D
    Flash Professional “HellCat”
    Flash Builder 4.7
    ActionScript Compiler 2.0
    Project ‘Monocle’
    New Runtimes
    New Virtual Machine
    New version of ActionScript

    WOW!

  2. Chris 28 November 2012 at 7:03 am #

    I think you can detect a user-installed app using window.navigator.standalone

  3. Ben Guerrette 28 November 2012 at 7:41 am #

    Great article. Nice to finally hear someone openly address the fact that HTML5 takes longer to develop with when deploying to multiple browsers and devices. Therefore it costs more. Flash to HTML5 is not a 1:1 conversion. 30-50% more time sounds about right.

  4. Stefan Richter 28 November 2012 at 8:48 am #

    Well put, and it’s great to hear this from someone who’s been there and done it. Some folks tend to forget that the best app is one that has actually shipped. The ‘it-must-be-native’ zealots seem clueless to me at times - as you rightly say, if your app gets 4 and 5 star reviews then it does its job very well.

  5. Jason Langdon 28 November 2012 at 9:50 am #

    All I can really add is that I whole heartedly agree with your sentiments.

    I actually emailed the Adobe evangelism team a while ago imploring them to put the facts straight about AIR/Flash and the silence was deafening if I’m honest.

    Flash wrapped up in AIR is indeed an incredibly productive cross-platform toolset. Though it does feel like it’s been left to the community to spruik it’s wares…

  6. Jensa 28 November 2012 at 2:57 pm #

    @Chris You sure? It looks to me that it has to do with detecting FullScreen?
    ref #1 http://stackoverflow.com/questions/10639858/javascript-window-navigator-standalone-broken
    ref #2 http://www.bennadel.com/blog/1950-Detecting-iPhone-s-App-Mode-Full-Screen-Mode-For-Web-Applications.htm

    If there is a way, I sure hope that Google’s Calendar developer and others discover how to use it smile

    J

  7. Chris Gannon 28 November 2012 at 3:09 pm #

    Well it’s a symptomatic test - AFAIK the only way you can be in proper full screen (in Safari at least) is if you are in a web app. Otherwise you have the time and connection bar at the top.

    So I (perhaps foolishly) assumed that full screen means user-installed web app.

  8. Jensa 28 November 2012 at 8:30 pm #

    I think that was good thinking! The VentureBeat article I link to above has the same annoying “Add-me” feature. I tried adding it on my iPhone and indeed - it did work?

    My phone does however not open it in fullscreen-mode. Its just like any other page so the fullscreen-trick wouldn’t work in this case. What they do is simple but clever though - the link they save to disk has #bmb=1 appended to it and then they check the URL for that using JS. Easy does it I guess?

    When it’s that easy, it still puzzles me that Google can’t make this work for their Calendar?

  9.