Mozilla a lancé un nouveau projet l’année dernière appelé Boot2Gecko (B2G), dans le but de développer un système d’exploitation mobile. L’interface utilisateur de la plateforme et la pile d’application seront entièrement construits avec des technologies Web basées sur des normes en utilisant Gecko, le moteur de rendu HTML utilisé dans le navigateur Web Firefox. Tout ce que l’on peut noter à ce jour, c’est que le projet a progressé à un rythme effréné, ce qui permet à la plateforme de prendre forme.
Note : Cet article fait suite à l’interview d’ars technica de Brendan Eich
Boot2Gecko, un projet ambitieux de Mozilla
Selon une feuille de route récemment publiée par Mozilla, le projet B2G pourrait être disponible durant le deuxième trimestre de 2012. C’est un objectif très ambitieux, mais le rythme impressionnant du projet de développement montre que c’est tout à fait possible… Pour y arriver, l’utilisation combinée du langage HTML et du JavaScript afin de créer l’interface utilisateur et la pile d’application fait sans aucun doute accélérer le projet. Les technologies du Web sont très propices à un développement rapide.
Pour appuyer la sortie, l’équipe de B2G se prépare à nous présenter la plateforme lors du prochain événement Mobile World Congress (MWC), qui se déroulera du 27 février au 1er Mars 2012.
À la découverte des couches de B2G
La plate-forme B2G se compose de trois principales couches : la couche inférieure, qui est appelé Gonk, inclut le noyau Linux, la couche d’abstraction matérielle et d’autres composants du système bas niveau. La couche intermédiaire est le moteur de rendu Gecko, qui a été amélioré avec de nouvelles API qui exposent les capacités du périphérique. Enfin, la couche supérieure est Gaia, l’interface utilisateur de B2G, qui est entièrement développée en HTML et JavaScript.
Le noyau qui est utilisé dans Gonk est dit être « raisonnablement proche » d’un noyau Linux. Selon la documentation Mozilla, Gonk utilise certaines brides du projet Open Source Android, y compris certaines personnalisations mineures du noyau, et ce afin de rendre le déploiement sur les dispositifs supportant déjà Android plus aisé. Cependant, B2G n’est pas basé sur Android et par conséquent, ne sera pas exécuter des applications Android.
Note : D’ailleurs, pour pousser le vice encore plus loin, il est actuellement possible de remplacer l’environnement Android sur un Samsung Galaxy S II avec une image B2G
Une grande partie de l’interaction entre Gecko et les couches Gonk sera réalisée par un processus B2G qui s’exécute avec un niveau de privilège élevé et agit comme une sorte de serveur Gecko.
Un projet 100% Web !
Mozilla a pour objectif de construire l’interface utilisateur de B2G et toute la pile d’application en natif HTML et JavaScript. Pour y arriver, Mozilla a lancé le projet WebAPI, qui expose les fonctionnalités des périphériques en contenu Web par le biais des API JavaScript.
Précédemment, Mozilla a déjà introduit une API permettant d’accéder à certaines fonctionnalités d’un dispositif, telles que l’accéléromètre et les API de géolocalisation qui sont pris en charge dans les versions mobiles de Firefox.
Le projet WebAPI va encore plus loin et ajoute un grand nombre de fonctionnalités supplémentaires, comme prendre des photos avec l’appareil photo intégré, composer un numéro de téléphone, accéder au niveau et au statut de la batterie de l’appareil, l’envoi et la gestion de messages SMS, l’accès au carnet d’adresse de l’utilisateur, et même faire vibrer le dispositif. Ces capacités sont largement accessibles à un contenu Web grâce à un ensemble d’API JavaScript.
Par exemple, l’interface Dialer de B2G, celle qui va nous permettre de téléphoner, est juste une page Web qui utilise une fonction JavaScript pour lancer un appel…
Mozilla travaille à normaliser ces API à travers le groupe de travail W3C Device APIs. En théorie, les API JavaScript qui sont utilisées pour permettre l’accès aux fonctionnalités de la plateforme sur B2G pourraient éventuellement être prises en charge nativement dans les navigateurs Web par défaut.
L’effort de normalisation autour des API des dispositifs est très important. Si l’adoption des API devenait généralisée, il permettrait de tirer une grande partie de l’expérience utilisateur à la fois sur B2G, mais également permettrait de fonctionner dans les navigateurs Web sur d’autres plateformes.
A ce sujet, l’idée du futur non caché de Mozilla, serait d’avoir des applications développées et basées sur les standards HTML et JavaScript, qui seraient capables de faire tout ce qui peut être fait aujourd’hui avec des applications natives.
Découvrons Gaia, une interface utilisateur riche
Puisque la couche de l’interface utilisateur de B2G Gaia est mise en œuvre en HTML et JavaScript, il est techniquement possible de la faire fonctionner dans un navigateur Web ordinaire. Bien sûr, les capacités liées au dispositif mobile ne fonctionne que lorsque le contenu est géré dans un environnement que prend en charge le projet WebAPI.
Pour vous en convaincre, je viens de tester Gaia sur ma machine, que ce soit l’interface utilisateur mais également plusieurs de ses applications. Pour ce faire, j’ai utilisé la plateforme dans une nightly build de Firefox. Ensuite, j’ai téléchargé le projet sur GitHub. Donc pour résumer :
- Il suffit de vous rendre sur la page de téléchargement d’une nightly build de Firefox, et récupérez une version correspondant à votre système d’exploitation
- Une fois cette version téléchargée et installée, il vous suffit de télécharger le code source du projet depuis le GitHub du projet. Cliquez sur ce lien pour vous y rendre
- Enfin, lancez le navigateur nightly build, puis ouvrez le fichier
homescreen.html
dans ce dernier
Lorsque la page se charge, vous verrez l’écran de verrouillage de B2G qui affiche la date et l’heure.
L’interface de l’écran d’accueil peut être consulté en faisant glisser l’écran de verrouillage vers le haut. Ce dernier va afficher une grille d’applications et dispose d’une barre de notification en haut. Vous pouvez faire glisser celle-ci à l’aide du curseur vers le bas, un peu comme l’équivalent sous Android.
Si vous regardez le code source de la page homescreen.html
, vous verrez que le contenu de l’interface, y compris l’écran de verrouillage, sont créés en HTML, avec des éléments div
et un peu de code JavaScript pour gérer l’interaction et remplir les valeurs. Le contenu est assez simple et lisible !
Une fois une application lancée, celle-ci sera affichée dans une frame, autrement dit un cadre, au sein de la page homescreen.html
. J’ai pu tester différentes applications, y compris l’application pour appeler, le navigateur Web, et l’application de cartographie. Et, tout comme l’écran d’accueil, celles-ci sont toutes développées en HTML et CSS. Ainsi, le navigateur Web se résume à une page Web que l’on appelle, dont le contenu est ensuite modifié dans une iframe
, et ce sans recharger la page ! C’est juste hallucinant.
La mise en œuvre actuelle de l’environnement Gaia est encore simpliste et incomplète, mais elle offre une démonstration convaincante de la façon dont le contenu Web peut être utilisé afin de créer une expérience utilisateur parfaite sur un dispositif mobile.
Avec ce dernier, on peut voir qu’il est possible de faire quoi que ce soit dans l’interface utilisateur de B2G qui peut être fait avec le langage HTML et CSS. De quoi modifier très facilement l’interface par la suite… Cette flexibilité intrinsèque pourrait aider les constructeurs de mobile de faire rapidement appel à B2G, car ils seraient plus facile pour eux de créer des interfaces utilisateur personnalisées qui différencient leurs produits.
Malheureusement, pour le moment Mozilla n’a pas créé une boîte à outils pour le développement d’applications. Cependant, à noter qu’il est théoriquement possible d’utiliser des outils HTML existants dans B2G, comme jQuery Mobile ou encore Sencha Touch.
Conclusion
Si le projet B2G n’est qu’à un état embryonnaire, ces débuts sont impressionnants. Le concept de développer toutes les capacités natives à l’aide des standards et de la technologie du Web est extrêmement convaincant. Le Web ouvert pourrait un jour fournir une plateforme applicative unifiée pour les appareils mobiles, et ça on l’attend avec impatience…
Il est intéressant de noter que le projet est entièrement ouvert, et ce depuis son lancement. B2G bénéficie également de talents en ingénierie chez Mozilla, mais également des partenaires potentiels.
La plateforme B2G a la possibilité d’apporter des perturbations plus que positives dans le paysage mobile et être devenir un concurrent sérieux, à Android et iOS, même si il va falloir cravacher dur ! Selon moi, tout dépendra des contributions externes, mais j’y crois.
Et vous, pensez-vous qu’il est encore possible pour un OS Mobile de percer, qui plus est mobile ? Allons-nous enfin avoir l’émergence d’un Web ouvert ? Quelles sont vos impressions sur B2G et Gaia ? Venez réagir…