Firefox OS

Firefox OS

Ce qu'a fait Mozilla…

About Internet Explorer 6 infoBrowser Logos

Le Manifeste Mozilla

  • Internet est une ressource publique mondiale qui doit demeurer ouverte et accessible
  • Internet doit enrichir la vie de tout le monde.
  • La sécurité des personnes sur Internet est fondamentale et ne peut pas être considérée comme optionnelle
  • Chacun doit avoir la possibilité de façonner son utilisation d'Internet

Un nouvel objectif

Responsive Design Photo by Jason Weaver

Des promesses non tenues

Smartphone equals HTML5

La réalité

Apps Photo by Michael Gil

Plateformes mobiles propriétaires

Android / iOS / other

Plateformes mobiles propriétaires

  • le logiciel est spécifique au matériel
  • les modèles de revenus sont limités
  • la relation client passe par le “store”
  • « à prendre ou à laisser »
  • utilisateurs et développeurs sont prisonniers du silo

La plateforme mobile qu’on mérite

Keep calm and trust HTML5

La plateforme mobile qu’on mérite

  • le logiciel est multiplate-formes et multi-supports
  • pour l’utilisateur : découvrabilité et continuité entre bureau et mobile
  • pour le développeur : une techno déjà maîtrisée, ouverte et normalisée
  • pas de silo : relation directe entre client et développeurs/éditeurs

Architecture

Firefox OS architecture

Un nouveau marché

World wide web

Mise à jour du monde mobile

  • Ciblé sur les nouveaux marchés émergeants
  • Appareils très bon marché
  • Technologies Web d'un bout à l'autre
  • 18 partenaires mobiles, 4 partenaires matériels

2013

“Ship a f****ing phone”

Firefox OS

ZTE, Alcatel, LG

ZTE Open, Alcatel One Touch, LG FireWeb
duck attack!

Téléphones développeurs

Keon, Peak
  • Keon
    Snapdragon S1 à 1 GHz, 512 Mo RAM, écran 3.5", 91 €
  • Peak/Peak+
    Snapdragon S4×2 à 1,2 GHz, 512 Mo/1 Go RAM, écran 4.3", 149 €

http://www.geeksphone.com/

2014

Alcatel, ZTE

Alcatel One Touch, ZTE Open

Téléphones à venir

  • QualComm Snapdragon :
    • Alcatel OneTouch Fire C, Fire E, Fire S, Fire 7 tablet
    • ZTE Open C and Open II
    • Huawei
    • LG
  • Spreadtrum SC6821 ⇒ téléphones à 25$

“Flame” reference device

flame
  • QC MSM8210 Snapdragon, 1.2GHZ Dual core
  • 4.5” screen (FWVGA 854×480 pixels)
  • Cameras: Rear: 5MP / Front: 2MP
  • 3G UMTS quad-band (850/900/1900/2100)
  • 8GB memory
  • 256MB - 1GB RAM (adjustable by developer)
  • A-GPS, NFC
  • Dual SIM Support
  • WiFi: 802.11 b/g/n, Bluetooth, Micro USB

Tablettes

FxOS tablets
  • VIA Vixen
    ARM Cortex A9 Dual-Core 1.2Ghz
    RAM: 1GB, Storage: 8GB
    Écran 7" 1024x600
  • Foxconn InFocus
    ARM Cortex A7 Quad-Core 1.2GHz
    RAM: 2GB, Storage: 16GB
    Screen: 10.1" IPS 1280x800

Développer

Une app = un site web

Firefox OS apps
  • + un manifeste
  • + des Web API
  • + des Web Activities

app.manifest

{
  "name": "Mon application",
  "description": "Une description courte de l'application",
  "launch_path": "/",
  "icons": { "128": "/img/icone-128.png" },
  "developer": {
    "name": "Votre nom ou organisation",
    "url": "http://votre-site-web.org"
  },
  "default_locale": "fr"
}

https://developer.mozilla.org/fr/docs/Applications/Manifeste

Trois niveaux d'accès…

  • Apps hébergées - stockées sur votre serveur, faciles à mettre à jour, accès limité aux WebAPIs.
  • Apps privilégiées - vérifiées par le magasin d'applications (Marketplace) et signées.
  • Apps certifiées - parties de l'OS, uniquement par Mozilla et ses partenaires.

App permissions

WebAPIs

Web API (apps hébergées)

  • Vibration API
  • Screen Orientation
  • Geolocation API
  • Mouse Lock API
  • Open WebApps
  • Network Information API
  • Battery Status API
  • Alarm API
  • Push Notifications API
  • WebFM API / FMRadio
  • WebPayment
  • IndexedDB
  • Ambient light sensor
  • Proximity sensor
  • Notification

Utilisation des WebAPI

Exemple : la batterie

          var b = navigator.battery;
          if (b) {
            var level = Math.round(b.level * 100) + "%",
                charging = (b.charging) ? "" : "not ",
                chargeTime = parseInt(b.chargingTime / 60, 10),
                dischargeTime = parseInt(b.dischargingTime/60,10);
            b.addEventListener("levelchange", show);
            b.addEventListener("chargingchange", show);
            b.addEventListener("chargingtimechange", show);
            b.addEventListener("dischargingtimechange", show);
          }
        

Web APIs (apps privilégiées)

  • Device Storage API
  • Browser API
  • TCP Socket API
  • Contacts API
  • systemXHR

Utilisation des WebAPI

Web APIs (apps certifiées)

  • WebTelephony
  • WebSMS
  • Idle API
  • Settings API
  • Power Management API
  • Mobile Connection API
  • WiFi Information API
  • WebBluetooth
  • Permissions API
  • Network Stats API
  • Camera API
  • Time/Clock API
  • Attention screen
  • Voicemail

Using WebAPIs to make the web layer more capable

Web Activities

Web activities

  • configure
  • costcontrol
  • dial
  • open
  • pick
  • record
  • save-bookmark
  • share
  • view
  • new + type (sms, contact, …)

Obtenir une image du téléphone

Pick activity
        var getphoto = new MozActivity({
          name: "pick",
          data: {
            type: ["image/png",
                   "image/jpg", 
                   "image/jpeg"]
          }
        });
      

Préparer un numéro de téléphone

        var call = new MozActivity({
          name: "dial",
          data: {
            number: "+3280033800"
          }
        });
      

Activités pour app hébergées : aussi sous Android

Foxkeh loves android

Outils

L'éditeur est le navigateur !

Developer tools

Le simulateur Firefox OS

Simulator

Firefox OS Simulator

Où trouver plus d'informations…

Que pouvez-vous faire ?

  • Coder – écrivez des apps, contribuez à Gaia
  • Utiliser – utilisez le Marketplace, utilisez les Web API, utilisez FxOS
  • Feedback – donner votre avis sur les API, demandez des fonctionnalités, testez et signalez les bugs, …

⇒ Firefox OS App Days à Lyon, 21-22 juin 2014

Merci !

Mighty Duck!