Voilà bien longtemps que la fondation Mozilla lorgne sur les smartphones. Le problème est que si vous ne construisez pas, ou si vous n’éditez pas de système d’exploitation, les portes des terminaux mobiles vous sont fermées. La fondation essaye bien de proposer son très bon navigateur (Mozilla Launches a Speedy and Powerful Upgrade to Mobile Browsing with Firefox for Android), mais les éditeurs de systèmes d’exploitation ne voient pas ça d’un très bon oeil (Apple, Google, Microsoft…). Les choses ont pris une autre tournure quand Mozilla a commencé à faire des expérimentations très intéressantes d’API permettant d’accéder aux capteurs du téléphone : Mozilla shows off web apps accessing phone sensors with WebAPI.
Finalement la nouvelle a été officialisée lors du dernier Mobile World Congress de Barcelone : Mozilla est en train de finaliser un système d’exploitation mobile dont le nom de code est Boot2Gecko. Rebaptisé Firefox OS, ce système d’exploitation a la particularité d’être open source et de proposer une interface entièrement en HTML5. Concrètement cet OS repose sur un noyau Linux, mais l’interface graphique et les applications sont en HTML5, comme un certain Chrome OS. Donc oui, avec Firefox OS, Mozilla veut concurrencer Android en reprenant les armes de Google (un noyau Linux et une interface graphique assurée entièrement par le moteur de rendu du navigateur).
Vous noterez que le principe du système d’exploitation mobile open source avec des applications en HTML n’est pas neuf, car Palm/HP le proposait déjà avec son Open WebOS.
Des applications mobiles 100% HTML5
Je me permets d’insister sur le fait qu’une application mobile HTML5 n’est pas la même chose qu’un site mobile en HTML5. La différence est subtile, mais elle a son importance. Pour vous la faire simple, il y a cinq types d’application mobile :
- Les applications natives codées en langage natif (majoritairement Objective C pour iOS, Java pour Android…) ;
- Les applications hybrides qui sont des coquilles en langage natif qui encapsulent des contenus en HTML ;
- Les applications universelles qui sont codées avec un pseudolangage puis compilées en application hybride (c’est ce que propose PhoneGap) ;
- Les applications en ligne qui sont codées en HTML, mais dont il faut télécharger les pages à chaque utilisation (comme un site web) ;
- Les applications HTML qui sont installées sur le smartphone en mode hors-ligne (les pages HTML sont stockées sur le terminal et mises à jour si une connexion est disponible).
Tout ceci est très vulgairement simplifié, mais vous donne une vision d’ensemble des technologies disponibles. Est-ce qu’une application mobile native est mieux qu’une application universelle ou HTML ? Il me semble avoir déjà répondu à cette question : En finir avec le débat application vs. site mobile. Dans tous les cas de figure, ce n’est pas parce qu’une application est codée en HTML, CSS et javascript qu’elle ne peut pas être belle. Pour vous en convaincre, je vous incite à tester la très bonne application météo Sun avec votre smarpthone.
Plutôt que de concentrer les efforts sur un langage en particulier et de ne s’adresser du coup qu’aux développeurs connaissant ce langage, Mozilla a fait le choix très ambitieux de proposer un système d’exploitation mobile exploitant le langage le plus universel, celui du web. Concrètement : si vous savez faire un site web, vous savez faire une application pour Firefox OS. La communauté des développeurs de Firefox OS est donc virtuellement largement plus vaste que celles des autres OS mobiles (cf. l’interview de notre Tristan Nitot national : Mozilla Wants Hundreds Of Thousands Of Firefox OS Developers). Mais comme me le fait très justement remarquer un de mes lecteurs, l’ouverture de Firefox OS est toute relative, car s’il est possible de coder en C ou C++ pour iOS ou Android, Mozilla est très hostile à l’utilisation de languages autres que ceux du web. Le support de Java n’est donc pas à l’ordre du jour pour Mozilla (cf la mailing list des développeurs de B2G), même s’il n’est pas impossible d’installer OpenJDK. Le crédo de Mozilla est donc : « HTML, CSS et Javascript ou rien« .
En s’adressant à une communauté (en théorie) plus large avec un OS mobile open source, l’approche de Mozilla est donc de séduire les fabricants de smartphones low cost. Il faut dire que ce segment est particulièrement intéressant, car la concurrence y est plutôt faible (tout le monde se bat pour détrôner l’iPhone) et que les perspectives de croissance sont faramineuses (China’s affordable mobile revolution: 40% of smartphones will be sub-$200 by 2015). Ce n’est ainsi pas un hasard si les premiers pays servis seront ceux de la zone BRIC : Brazil will be the first country to get Mozilla’s Boot to Gecko open web devices. Sur ces marchés, Mozilla devra donc assumer une concurrence directe avec Google et son Android. Visiblement ils s’en sortent plutôt bien, car de nombreux partenariats ont déjà été signés avec des constructeurs (notamment le chinois ZTE) et même des opérateurs européens (Deutsche Telekom, Telecom Italia, Telefónica, Telenor…) : Mozilla Gains Global Support For a Firefox Mobile OS. Comme quoi, la perspective d’un marché bipolaire Apple/Google fait quand même peur aux acteurs de la mobilité.
Des premiers retours très positifs
Mais revenons à des considérations plus terre à terre comme « Est-ce qu’il est bien ?« . Les premiers tests sont visiblement concluants avec un ressenti très positif (Here’s Your First Look At Firefox’s Operating System For Smartphones) : l’interface graphique Gaia est à la fois intuitive, agréable et véloce. Ceci n’est pas réellement surprenant, car rappelons qu’il y a chez Mozilla à la fois des équipes réellement passionnées et des grands noms de l’ergonomie comme Jef Raskin et son fils Aza. Vous pouvez d’ailleurs vous faire votre propre opinion en l’installant sur votre machine : Test The Firefox Mobile OS On Your Desktop And See What It’s All About.
Non seulement l’interface est donc simple et agréable, mais elle complètement personnalisable (puisque ce n’est « que » du HTML). De plus, le noyau Linux autorise le multitâche comme le montre la capture d’écran juste au-dessus à droite (vous pouvez accéder aux applications lors d’une conversation).
Mais que vont faire les opérateurs avec un OS libre et ouvert ?
Nous avons donc un système d’exploitation mobile bien conçu, très facile à personnaliser et avec un écosystème très vaste de développeurs. Toutes les conditions sont donc réunies pour faire de ce Firefox OS un succès… surtout un succès pour les opérateurs qui ne vont pas se gêner pour truffer les combinés vendus dans leur réseau de crapware et autres limitations pour sécuriser un maximum de revenus. Force est de constater, que si le gros des usages est aujourd’hui généré par les applications (And The Winner Of The Apps vs. Browsers War Is…), les revenus des publicités mobiles sont en pleine croissance : The State of Mobile Advertising, Q2 2012.
Si le marché de la publicité mobile se déporte des solutions de monétisation propriétaires vers des bannières HTML, c’est que les revenus sont plus facilement contrôlables. Comprenez par là que les opérateurs et éditeurs de services ont tout intérêt à générer des revenus de bannières HTML, car ils échappent à la commission d’Apple ou de Google qui veulent avant tout imposer leur propre régie. Il est donc tout à fiat légitime de craindre une dérive de la part des opérateurs et éditeurs d’applications mobiles qui profiteraient de l’ouverture complète de Firefox OS pour le truffer de publicités et autres leviers de monétisation douteux. Les versions de Firefox OS utilisées par Telefonica ne permettront ainsi pas l’ajout de plugins.
Mais ne gâchons pas tout le plaisir de voir débarquer un nouvel acteur dans ce marché. Mozilla va ainsi endosser le rôle d’agitateur qui va forcer les autres éditeurs à évoluer plus vite et à innover. La grande question qui reste en suspens est de savoir si ce Firefox OS va savoir fédérer un écosystème de développeurs à suffisamment grande échelle et éviter l’impasse dans laquelle se trouve HP avec son WebOS (Mozilla Boot2Gecko: can the new HTML5 champion succeed where webOS failed?).



