With all the fuss made of HTML5 many clients ask us to use it to implement mobile application so they can reduce their costs when targeting several platforms. Our answer? No. In our opinion, in spite of the apparent advantages of having only one codebase running on different platforms, the drawbacks talk out of not following that path. Are we crazy? Do we go against the rest of the world that is on his way to a perfect Internet implemented in HTML5 in all its glory? We don’t think so. And we are not alone. Facebook recently made a step back and has published its iOS application, completely rebuilt from scratch as a native application, forgetting about HTML5. Why? Tobie Langl, Facebook UI architect and a core member of Prototype, gave a list of reasons in the W3C mailing list that are mostly the same reasons we give our clients when they ask us about this kind of implementations:
- Lack of diagnosis tools when the application fails in the mobile device, causing a greater development time spent trying to diagnose those failures.
- It is impossible or extremely difficult to accelerate certain content types using the GPU (Graphics Processing Unit) so we lose performance and smoothness in our application.
In addition to these problems we must keep in mind another very important issue: user experience. Creating only one application using HTML5 means putting native components and their associated experience aside. Or to put it another way, the user will face a weird interface that won’t match the rest of the platform. All of this makes us to spend the money and time saved having only one codebase in solving performance problems, adapting the interface to all the target platforms, etc. And worst of all, we may lose a lot of users due to a slow or confusing application that doesn’t follow the platform guidelines.
So, can using HTML5 be ever a good idea? We don’t have any doubt about HTML5’s bright future, but right now we think it’s only a fit for extremely low budget applications which doesn’t have to show a lot of data and where user experience is not a priority. But if this is your case, maybe you should rethink your mobile strategy.