Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia

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.

Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia - Écran de verrouillage de Gaia

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.

Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia - Liste des applications

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 !

Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia - Code source de la page

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.

Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia - Application d'appel

Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia - Application de cartographie

Découvrez la plateforme mobile Mozilla, Boot2Gecko, et son interface utilisateur Gaia - Navigateur Web

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…

  • Visiteur

     C’est pas tout nouveau nouveau les technos web pour les applications mobiles. Il suffit de voir les applications du bien-nommé webOS. :)

  • Pingback: pxo | Pearltrees

  • Rorothermidor

    L’article est intéressant (bien qu’une petite relecture par l’auteur histoire de corriger quelques erreurs de syntaxe et/ou de répétition serait de bon aloi) et souligne bien cette idée d’ouverture d’un OS mobile orienté Web à l’instar d’un WebOS mais plus poussé encore. Le problème réside toutefois dans l’idée que les autres sont déjà très/trop bien installés et ont la confiance du public (bien que je ne comprenne pas vraiment cet engouement pour Android et son problème de fragmentation matérielle avec tout ce que çamporte), ce qui mettra énormément de bâtons dans les roues du petit nouveau. Les tentatives de Windows Phone 7 paient actuellement puisque le Lumia 800, son porte étendard, se vend apparemment pas mal mais c’est loin du niveau de ventes d’un iOS ou Android. Si Mozilla parvient à imposer, ou caler une fiche technique spécifique pour ces téléphones ou tablettes (pourquoi pas) en laissant une certaine liberté aux constructeurs pour se différencier tout en adaptant l’OS aux équipements embarqués, ils parviendront à toucher un public notemment avec l’entrée de gamme des smartphones puis en ciblant progressivement le haut de gamme jusqu’à une vraie pénétration totale. Il n’y a pratiquement que sous ces conditions qu’ils peuvent percer, en prenant coe postulat qu’ils ont construit un OS stable et parfaitement sécurisé.

    • http://www.blog-nouvelles-technologies.fr Yohann Poiron

      Pourtant je pensais avoir bien relu ;) ! Désolé !

      Concernant Android, les gens ne savent pas vraiment de quoi il s’agit. S’ils savent qu’un iPhone est avec iOS je ne suis pas certain qu’ils fassent la différence entre différentes versions d’Android. Pour eux, c’est abstrait…

      Pour Boot2Gecko la promesse d’un OS mobile ouvert est comment dire, un cadeau pour les constructeurs… même si j’ai peur que chacun le détourne à sa façon provoquant ainsi une nouvelle fragmentation sur le marché….

      • Philippe

        Je suis pas tout à fait d’accord sur la fragmentation. En effet les interfaces des constructeur seront différentes mais comme il s’agira de template je pense qu’il sera bien plus facile pour eux de mettre les terminaux à jours. Donc non cela ne sera pas fragmenté. (C’est comme mettre un thème sur Gnome).

        Après un projet totalement ouvert ça risque de me plaire vraiment sur tout les points :)

        • http://www.blog-nouvelles-technologies.fr Yohann Poiron

          Envie de lancer ton propre WebOS ? :)

  • Pingback: Le Marketplace de Mozilla officiellement ouvert aux soumissions d’applications en HTML5 | Le blog des nouvelles technologies : Web, Technologies, Développement, Interopérabilité

  • Pingback: Le Brésil sera le premier pays à lancer le projet Boot2Gecko de Mozilla | Le blog des nouvelles technologies : Web, Technologies, Développement, Interopérabilité

  • Pingback: Mozilla vous permet désormais de tester Firefox OS dans votre navigateur de bureau | BlogNT : Le Blog des Nouvelles Technologies dédié au Web, aux nouvelles technologies et au développement Web