So you want to build an app. You’re thinking if you do it in HTML, you can take your existing skills and port it to other platforms? You’re in for a rough time… That whole “build hybrid apps using HTML5, trust us, it’ll work as well as native” thing? Turns out it doesn’t.
There have been a few recent examples of companies making headlines by announcing they were ditching their HTML-based mobile apps and moving to native.
Two examples: Facebook, and accountancy startup Xero.
Two questions: Why is this actually newsworthy, and why have they been unable to make HTML5-based (more properly called “hybrid apps”) work?
Managing to get an app working on multiple platforms is a huge pain. Somehow we’ve engineered (no pun intended) our way into a situation where we can’t easily take code from, say, iOS to Android and then to Windows Phone. Any hop between platforms needs reengineering. If you build a hybrid app, you should, in theory, just be able to get away with writing it once and repackaging the same code for other platforms. That’s a huge win.
I think the reason why initiatives to build hybrid apps that fail become newsworthy is that people really want this idea to work. It seems logical. It seems proper. Failure piques the interest of those developers following the story.
The only problem with hybrid apps is that it’s nigh-on impossible to make them work. And that’s quite a big problem.
Over the past 18 months, I’ve worked on a number of different projects based on PhoneGap/Apache Cordova, some for clients, some for personal interest. I’ve also taught a couple of three-day classroom training sessions on the technology.
I’ve put this stuff through the mill, just for you.
Well, not exactly “just for you.” But I will say this: it doesn’t work.
I’d like to leave this story at “it doesn’t work,” but I guess my job is to actually provide you with more information.
We know that the ratio of “effort to progress” in software engineering is not a straight line. You can get through 50 percent of a project in four weeks, but getting through the remaining 50 percent can take you an additional sixteen weeks.
Closing in on the last 10 percent of a project with hybrid apps is always, always like that. At some point, you will always hit a brick wall that you need to get through. In fact, it’s not a brick wall — you just hit glue. Regardless of how fast you’re going, at some point you just stop moving and whatever effort you expend getting out of the glue exceeds the advantage of using the toolset in the first place.