Sommaire
Le marché actuel du téléphone mobile
Différentes plateformes existantes
Le marché du téléphone mobile est dominé par trois plateformes incompatibles les unes avec les autres.
Apple
Apple possède un ensemble d'appareils centrés sur le « design ». C'est historiquement la première société (2007) à avoir popularisé le téléphone intelligent (smartphone).
Son « appstore » (lieu unique de téléchargement des applications dédiées), ses appareils mobiles et son système d'exploitation sont connus mondialement.
Pour développer sur les appareils Apple, il faut d'abord acheter une licence, acheter le système pour développer et ensuite soumettre son application puis croiser les doigts pour qu'Apple la valide. L'application peut être refusée pour son contenu (sexuel, diffamatoire, non respectueux des dispositions légales) ou pour des raisons plus techniques (bug, instabilité, backdoor) voire pour des raisons politiques, une mauvaise description ou un système de vente non autorisé …
Google
Google a sorti un système concurrent nommé Android en novembre 2007 avec le google play (système de diffusion d'application associé). Il totalise 75% des parts de marché sur smartphone d'après Strategy Analytics.
Il existe plusieurs systèmes et magasins de distribution d'applications basés sur ce système.
Microsoft
Microsoft est le 3è acteur dans la plateforme mobile. Comme les autres, il possède son propre magasin applicatif, son propre OS. Ses parts de marché restent très faibles actuellement.
Développement sur mobile
Pour développer sur mobile, une société doit multiplier le coût de développement pour chaque plateforme sur laquelle elle souhaite se positionner.
Les équipes de développement doivent donc acheter/connaitre/utiliser autant d'environnements de développement, de langages de programmation et de manières de publier/mettre à jour leurs logiciels.
Les règles de publication (lieu, contenu, modèle économique …) et les contacts entre développeurs et utilisateurs sont dictés par une seule entreprise.
Positionnement de Mozilla
Pour répondre à ce problème, Mozilla propose une plateforme ouverte pouvant accueillir et même encourageant les multiples magasins d'applications. Elle propose d'utiliser les technologies du web pour rendre les applications compatibles entre les systèmes.
Ce système casse la verticalité de la distribution de contenu. Deux à trois organisations dirigeaient la diffusion sur l'ensemble de la distribution mondiale. Le système proposé par Mozilla permettra à chacun de diffuser son propre contenu.
Libre à chaque plateforme d'aller plus loin que les restrictions légales en ajoutant des règles de distribution tout en laissant d'autres organisations avec différentes politiques.
Au delà de Firefox OS ce système de distribution d'applications se veut devenir utilisable par tout le monde. Par exemple, un téléphone sous Android pourra utiliser les api du web mobile en passant par Firefox ou par un autre navigateur web.
À lire : Why Firefox OS is better than Android and IOS
Dans le ventre de Firefox OS
Interface
L'interface de Firefox OS est très simple, toutes les applications sont rangées sur plusieurs pages sans qu'il n'y ait de menu particulier. Toute la navigation se fait dans l'horizontalité.
Comme sur la plupart des systèmes de téléphones actuels, les notifications sont disponibles en tirant le menu depuis le haut et on peut mettre des applications dans un lanceur rapide.
Vous le savez surement, les brevets de la technologie mobile sont un vrai calvaire pour quiconque souhaite développer un système. Mozilla a donc du revoir plusieurs fois sa copie sur certains points. C'est expliqué ici.
Firefox OS est fourni avec quelques applications basiques : le magasin d'applications (marketplace), une radio fm, le système gps (google maps), un calendrier compatible avec les systèmes Google, Yahoo! et CalDav, un gestionnaire de courrier électronique ainsi que des galeries images/vidéo/musique.
Découverte dynamique d'Applications
Mozilla s'est associé à l'entreprise everything.me pour intégrer directement la recherche dynamique d'applications (aussi disponible sur le magasin d'applications de Google : Google Play)
Elle est expliquée par Mozilla de cette manière :
Firefox OS comprend un moteur de recherche dynamique d'applications, saisissez simplement un mot comme sushi et découvrez les applications relatives à ce terme classées par pertinence (région…) et en fonction de vos centres d'intérêts, vous évitant ainsi de faire plein de recherches.
On peut alors à la fois utiliser les applications sans les installer (comme si on surfait sur le web finalement) ou laisser le doigt appuyé sur l'icône pour l'installer.
L'intégration directe de ce système, son accessibilité ainsi que sa simplicité d'utilisation en feront un argument de poids pour Firefox OS.
Architecture
Firefox OS repose sur une structure simple.
Gonk est un noyau linux, des bibliothèques système, des micrologiciels ainsi que des pilotes. Il fournit l'abstraction matériel.
Gecko représente la couche d'exécution d'application qui fournit le cadre pour l'exécution des applications, et met en œuvre les API Web utilisées pour accéder aux fonctions de l'appareil mobile.
Gaia est la suite d'applications Web qui composent l'expérience utilisateur.
Pour en apprendre plus, vous pouvez consulter le wiki (majoritairement en anglais).
Sécurité
La couche Gecko agit comme intermédiaire entre les applications Web (à la couche de Gaia) et le téléphone. C'est elle qui applique les politiques de sécurité destinées à protéger l'appareil mobile d'une mauvaise utilisation. Les applications Web n'accèdent aux fonctionnalités du téléphone mobile uniquement via les API Web, et seulement si Gecko permet la demande d'accès - il n'y a pas d'accès direct, pas de «porte dérobée» dans le téléphone. Gecko applique des autorisations et empêche l'accès aux demandes non autorisées.
Classification des applications
Les applications sont classées en 3 catégories :
Certifié: Très Fiable
Applications du système qui ont été approuvées par l'exploitant ou OEM (en raison du risque de corruption de l'appareil ou un risque pour la fonctionnalité critique). Applications et services système uniquement; pas destinés à des applications tierces.
Cette désignation est réservée à un petit nombre d'applications critiques. Exemples: SMS, Bluetooth, appareil photo, horloge système, la téléphonie et le numéroteur par défaut (pour s'assurer que les services d'urgence sont toujours accessibles).
Privilégié: De confiance
Applications tierces qui ont été examinées, approuvées et signées numériquement par un marché autorisé.
Web (tout le reste):
Comprend à la fois les applications installées (enregistrées dans le téléphone mobile) et les applications hébergées (stockées à distance, avec seulement un manifeste d'application stockées sur le téléphone mobile). Le manifeste pour les applications hébergées peuvent être obtenues grâce à un marché.
Autorisations qui en découlent
Le niveau de confiance d'une application détermine, en partie, de sa capacité à accéder aux fonctionnalités de téléphonie mobile.
Les applications certifiées disposent d'autorisations sur la plupart des opérations d'API Web.
Les applications privilégiés disposent d'autorisations sur un sous-ensemble des opérations d'API de services Web accessibles aux applications certifiées.
Les applications non approuvées disposent d'autorisations sur un sous-ensemble des opérations d'API de services Web accessibles aux applications privilégiées. Ce sont seulement ceux API Web qui contiennent les mesures d'atténuation de sécurité suffisantes pour être exposés à du contenu Web non sécurisé.
Certaines opérations, telles que l'accès au réseau, sont supposées être une autorisation implicite pour toutes les applications. En général, plus l'opération est sensible (par exemple, composer un numéro de téléphone ou d'accéder à la liste des contacts), plus le niveau de confiance de l'application nécessaire pour l'exécuter sera élevé.
Validation d'une application privilégiée
Lors du téléchargement d'applications, deux acteurs peuvent entrer en jeu : le développeur et le marché. Certains marchés seront agréés par Mozilla pour fournir des applications privilégiées (voir supra).
Le code sera alors rigoureusement vérifié : authenticité et intégrité ; de même que les accès demandés par le développeur : légitimité, données utilisées. Pour éviter les attaques d'élévation de privilège, on contrôle également les interfaces avec les autres applications.
Le marché a la responsabilité d'assurer que l'application web ne se comportera pas malicieusement avec les autorisations qui lui sont accordées.
Si une application passe cet examen, son manifeste est signé numériquement par le marché. Comme vu au dessus, elle aura accès aux API les plus restrictives.
Allez plus loin
Pour en savoir plus sur la sécurité de Firefox Os, il convient de se référer à la page suivant (en anglais).
Logiciel Libre, Open Source ?
Vous avez pu lire récemment la dépêche Entretien avec Paul Kocialkowski, développeur Replicant.
Bien que Firefox OS soit open-source, il peut utiliser des micrologiciels propriétaires sur le téléphone que vous utilisez. Le système n'est donc pas contrôlé à 100%.
Le web adapté pour le mobile
Pour pouvoir utiliser le web sur Firefox OS, Mozilla a utilisé/crée des API (Application Programming Interface) web réparties en plusieurs catégories.
Chaque accès matériel et fonctionnalité spécifique aux téléphones (appel, sms …) a été transformé en API HTML5/JavaScript.
Développement
Le développement sur Firefox OS est donc très proche du développement web. Les outils et méthodes sont semblables ce qui donne à la plateforme un potentiel bien au delà de ses concurrentes. En effet, il existe 100 000 développeurs IOS, 450 000 Android et environ 8 000 000 HTML5.
Communication
Les API de communication regroupent les fonctionnalités bluetooth, connexion mobile (force du signal, information sur l'opérateur), connexion et statistiques réseau, information wifi, socket TCP ainsi que la téléphonie et les SMS. Seules le bluetooth et les informations réseau sont standardisées.
Données
Pour la gestion des données, le développeur pourra utiliser indexedDB qui permet de gérer des quantités importantes de données structurées et des recherches de haute performance sur ces données en utilisant des index côté client (DOM storage est utilisé pour de petites quantités).
Mozilla complète cette API standard mais encore expérimentale avec notamment une API permettant d'accéder aux dossiers classiques d'un téléphone (images par exemple) ainsi qu'aux contacts. Enfin, on trouve des fonctionnalités de verrou des fichiers et d’interaction avec les configurations systèmes.
Matériel
La plupart des API d'accès matériel est standard excepté l'utilisation de la caméra, la gestion de l'énergie ainsi que la radio FM.
Les API standard permettent par exemple de gérer l'orientation du téléphone (mobile et écran), la vibration, la proximité…
Applications
Les applications peuvent être installées facilement avec l'apps API. En effet, les applications ne sont pas seulement disponibles sur les magasins dédiés. On peut par exemple imaginer qu'en surfant sur Wikipedia en utilisant Firefox sur Firefox OS, une petite popup s'affiche pour vous proposer directement d'installer l'application.
Grâce à cette API, vous pourrez avoir les informations nécessaires pour faire directement l'installation en connaissant le prix, l'éditeur…
Web payment API
Cette API permet à du contenu Web de lancer des paiements et des remboursements électroniques.
Web activities
Si une application ne peut réellement en lancer une autre, elle peut lui déléguer certaines taches.
Voici ce que dit le wiki à ce sujet :
Cette API permet à une application de déléguer une activité à une autre application. Une application peut, par exemple, demander à une autre application de sélectionner (ou de créer) une photo et de la renvoyer à la première application. C'est généralement l'utilisateur qui sera capable de configurer la façon dont les applications seront choisies.
Les activités sont donc définies par l'API, une application n'a qu'à déclarer qu'elle souhaite en gérer une. On retrouve la création de courriel / sms, l'ouverture d'images / vidéos
la visualisation : pdf / navigateur …
À noter que les applications ont leur propre stockage et exécution.
Brendan Eich, créateur du JavaScript et l’un des fondateurs de Mozilla a écrit un excellent article (version traduite) sur le sujet.
Cet article (en anglais) de Robert Nyman donne un bon aperçu des exemples d'utilisation dans du code.
Le déploiement
Pour le lancement de son système, Mozilla vise avant tout le téléphone bas de gamme et les marchés émergents. Article très complet (en anglais).
Les premiers appareils seront disponibles dans les pays suivants : Brésil, Colombie, Hongrie, Mexique, Monténégro, Pologne, Serbie, Espagne et Venezuela. Huit autres marchés devraient être annoncés prochainement.
Certification Mozilla
Afin de garantir des configurations et services minimum communs entre tous les téléphones, Mozilla ne délivre la certification Firefox OS (et donc le logo officiel) aux constructeurs que sous certaines conditions :
Pour le matériel, le mobile devra avoir au minimum un processeur 800 MHz mono-cœur avec au moins 256 Mo de mémoire vive. La résolution devra être du 320*240 (QVGA).
Côté logiciel, Mozilla demande seulement le navigateur Firefox ainsi que le magasin d'applications.
Cette certification n'est donc pas très difficile à obtenir et ceci pour plusieurs raisons.
Premièrement Mozilla vise en premier lieu les pays émergents avec des téléphones très peu cher. Bien entendu, Firefox OS fonctionne de manière très fluide sur ce type de matériel. On évite donc la fuite en avant du matériel, l'obsolescence programmée et les téléphones coutant plusieurs centaines d'euros.
De plus, cela permettra à ce logo d'être distribué plus largement, les constructeurs auraient pu distribuer Firefox OS sans la certification (et sans le logo) si la certification était trop dure à obtenir.
Partenaires
L'engouement autour de Firefox OS ne fait que commencer mais Mozilla annonce fièrement de nombreux partenaires de taille.
On compte parmi eux 18 opérateurs : América Móvil, China Unicom, Deutsche Telekom, Etisalat, Hutchison Three Group, KDDI, KT, MegaFon, Qtel, SingTel, Smart, Sprint, Telecom Italia Group, Telefónica, Telenor, Telstra, TMN et VimpelCom.
Notez l'absence d'opérateurs français.
ZTE, Foxcomm, Alcatel et Sony Mobile ont annoncé leur participation. Actuellement, Samsung continue de développer Tizen, il ne sortira pas de téléphone sur Firefox OS bien qu'il a commencé à intégrer une partie des API.
Téléphones
Alcatel a sorti le One Touch Fire : 99 € en juillet et notamment en France.
Foxconn a annoncé développer "au moins 5 terminaux Firefox OS" dont une tablette.
ZTE a annoncé deux téléphones dont un vendu à 69€
Sony lancera un smartphone l'année prochaine.
Tester Firefox OS maintenant
Firefox OS est testable très facilement puisqu'un simulateur est disponible pour Firefox que vous soyez sur Windows ou Linux. On peut y installer des applications, utiliser celle présentes de base …
Celui-ci est disponible ici.