I was last week at Mobile World Congress, one of the world biggest events dedicated to mobile, and it was great to see so much enthusiasm on the role that HTML5, and by extension the Web, can play on mobile devices.
HTML5 logos plastering booths, developers hunting for our “HTML5 everywhere” t-shirts, the large number of people that stopped by at our booth to learn how they can be involved, and the various announcements on Web-based operating systems (FirefoxOS, Tizen) all reinforced the Web’s importance on mobile.
A lot of the visitors at our booth had questions on the state of various APIs or technologies they need. Every quarter I publish answers to those questions in an overview of Web apps technologies most relevant to mobile. Yesterday I updated the report, which I hope will allow all those interested in Web and mobile to track the abundant work happening in the field.
Yet, while it was great to see so much energy behind the Web, I could not ignore those who were not so enthusiastic: the ones that had tried to base their mobile development on the Web but failed to do so due to a variety of missing features, the ones that are investing in hybrid applications but are encountering hard to workaround bugs, the ones that have been hampered by specific performance issues in implementations, or the many that reported that Web apps are much harder to make known and monetize than their native counterparts.
As part of our annual W3C headlights exercise, I have agreed to lead a task force with the goal of tackling the most important ways in which Web applications lag behind native on mobile.
Our goal is to take a broad view of that gap, identify where the Web platform remains weak, define where its strengths lie compared to other platforms, and based on that analysis, propose an action plan to reduce our most critical weaknesses and take greater advantage of our strong points.
The topic of comparing Web apps and native apps has been discussed (and even sung) at great length; it is certainly not my goal to repeat these discussions (and trust me, you don’t want me to sing). Nor is my goal to eliminate native apps: they’ve always co-existed with the Web (even back when we called them software), and will probably continue do so for a long time.
But it is also clear that many people would rather take advantage of the ability of the Web to reach every device rather than develop many versions of the same application, or would rather keep control on their link with their users rather than abandon it to an intermediary. The recent developer survey from Kendo UI was certainly heartening in that regard. Still, many encounter a number of barriers when they try to do so.
Some of the barriers that I’ve heard mentioned frequently include:
- performance, in particular when it comes to user interfaces (e.g. scrolling), as it can affect the user experience dramatically; a whole headlight project is actually dedicated to the topic;
- discovery: how can developers expose their Web apps to their potential users? How can users rate and review Web apps? What is the right equivalent of application stores for the Web? How centralized would it be? How does it relate to search engine? How can we make it possible to discover context relevant Web apps?
- developer tools: when native SDKs come with full-fledged IDEs, debuggers, profilers, the experience for Web apps developers remain ad-hoc in the best cases; are there systematic problems in our technologies that have made it hard to build good developers tools? how much of a barrier is the design inconsistency among our technologies that the Web legacy requires us to keep around?
- capabilities (e.g. hardware integration): we have already a lot of ongoing work in this space, but are there items that are so important we should dedicate a lot more resources in getting them done faster? Should we boost the efforts such as what the CoreMob Community Group has been doing to get greater convergence among implementors on a smaller set of features?
Some of the probably under-used strengths of the Web as a platform would be:
- users don’t need to install Web apps, removing the need to “garden our phones” (as I heard Scott Jenson eloquently put it), and thus enabling use cases that are out of reach for native apps;
- the Web is pretty much the only contender when it comes to create apps that run in any connected device, and maybe more futuristically, that break the device barriers completely (e.g. in so called multi-screens scenarios).
Part of the difficulty of this problem is that addressing these barriers, and taking advantage of these strengths depends on whether we’re talking of Web apps inside the browser context (with its specific security contraints), Web-based native apps (as defined by the W3C System Applications Working Group), or even hybrid apps.
I have started to collect a lot of my still messy understanding in the W3C wiki.
But the problem is broad enough that I or other people already closely involved in W3C are likely to miss some important perspectives.
So, what is it that you would fix to make the Web the best platform out there on mobile? How would you fix it? Feel free to either join our mailing list, send me mail or simply post comments to this article if you want to share your views!