firefox os de la théorie à la pratique - osdc

36
Firefox OS de la théorie à la pratique Christophe Villeneuve @hellosct1

Upload: christophe-villeneuve

Post on 02-Jul-2015

2.523 views

Category:

Internet


1 download

DESCRIPTION

Présentation effectuée à l'Open Source Developers Conference (OSDC.fr) 2014 sur "Firefox OS : De la théorie à la pratique" par Christophe Villeneuve

TRANSCRIPT

Page 1: Firefox OS de la théorie à la pratique - OSDC

Firefox OS de la théorie à la pratique

Christophe Villeneuve@hellosct1

Page 2: Firefox OS de la théorie à la pratique - OSDC

Qui... est Christophe Villeneuve ?

<<

afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros - elephpant

Page 3: Firefox OS de la théorie à la pratique - OSDC

Aujourd'hui

● La théorie● La pratique● Autre utilisation

Page 4: Firefox OS de la théorie à la pratique - OSDC

Firefox OS C'est● Navigation par onglets

● Gestion mémoire

● Créer vos applications personnalisées et différencier UX

● Tout en application Web

Page 5: Firefox OS de la théorie à la pratique - OSDC
Page 6: Firefox OS de la théorie à la pratique - OSDC

https://mdn.mozillademos.org/files/4605/FirefoxOS.png

GONK

➢GECKO

➢GAIA

Page 7: Firefox OS de la théorie à la pratique - OSDC

GONK✔ Couche basse

✔ Kernel Linux + Matériels

✔ Hardware 

✔ libre ou propriétaire✔ Abstraction Layer (HAL)

✔ Pas exposé le JS  ✔ Isolé de Gaia 

✔ Communication par Gecko

Architecture (1/3)

Page 8: Firefox OS de la théorie à la pratique - OSDC

➢GONK

➢GECKO

✔ Moteur de rendu HTML5✔ Gestion des API

✔ De plus en plus complet

✔ Exécution des applications (runtime)

✔ Mécanisme de lancement dans Firefox pour HTML 5, CSS & Javascript

Architecture

Page 9: Firefox OS de la théorie à la pratique - OSDC

➢GONK

➢GECKO➢GAIA

✔ Interface utilisateur (IHM)✔ Construction API Full Web✔ HTML 5 + open Web✔ Communique avec Gecko via des Web API✔ Les Apps sont exécutés en mode sandbox✔ Offline

✔ LocalStorage, appCache

Architecture

Page 10: Firefox OS de la théorie à la pratique - OSDC

Composants → Web apps

Page 11: Firefox OS de la théorie à la pratique - OSDC

Gestion des demandes par Gonk

Page 12: Firefox OS de la théorie à la pratique - OSDC

Système de communication

Page 13: Firefox OS de la théorie à la pratique - OSDC

Les compétences

Les compétences

Page 14: Firefox OS de la théorie à la pratique - OSDC

Les langages du web

https://developer.mozilla.org/en-US/docs/Web/Tutorials

Page 15: Firefox OS de la théorie à la pratique - OSDC

Outils

● Gedit● Notepad++● Eclipse● Brackets● ...

Editeur de texte● Firefox ou autre

– Outils de Débug

– Firefox OS App Manager

Navigateur

Page 16: Firefox OS de la théorie à la pratique - OSDC

Appareils mobiles (Quelques modèles)

Alcatel One TouchFlame

ZTE Open C

GeeksPhone

Intex Cloud FX

Page 17: Firefox OS de la théorie à la pratique - OSDC
Page 18: Firefox OS de la théorie à la pratique - OSDC

Architecture

Index.html

Img=images

Css= feuilles de styles

js=javascripts

Firefox OS Web

Page 19: Firefox OS de la théorie à la pratique - OSDC

{

  "version": "1.0",

  "name": "Batterie",

  "description": "Gestion de la batterie",

  "launch_path": "/index.html",

  "icons": {

    "16": "/img/icons/osdc­16.png",

    "32": "/img/icons/osdc­32.png",

    "64": "/img/icons/osdc­64.png",

    "128": "/img/icons/osdc­128.png",

    "256": "/img/icons/osdc­256.png",

  },

  "developer": {

    "name": "Hello / Sector One",

    "url": "http://www.hello­design.fr"

  },

  "installs_allowed_from": ["*"],

  "appcache_path": "/manifest.appcache",

  "locales": {

    "fr": {

      "name" : "Batterie",         

      "description": "gestion de la batterie",

      "developer": {

        "url": "http://www.triplea.fr/alchimie"

      }

    }

  },

  "default_locale": "en"

}

Manifest.webapp

Page 20: Firefox OS de la théorie à la pratique - OSDC

CACHE MANIFEST

# Version 1.0

CACHE:

/css/all.css

/js/lib/all.js

/js/all.js

/index.html

Manifest.appcache

Page 21: Firefox OS de la théorie à la pratique - OSDC

var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;

// définir les éléments

var indicator1 = document.getElementById('indicator1');

var indicator2 = document.getElementById('indicator2');

var batteryCharge = document.getElementById('battery­charge');

var batteryTop = document.getElementById('battery­top');

var chargeIcon = document.getElementById('battery­charging');

// Position indicateur

// 0 Initialisation, 1 batterie chargé, 2 batterie non chargé

var chargingState = 0;

Js/battery.js

Page 22: Firefox OS de la théorie à la pratique - OSDC

if(battery.charging) {

  // batterie chargé

    if(chargingState == 1 || chargingState == 0) {

 

      batteryTop.style.backgroundColor = 'gold';

      batteryCharge.style.backgroundColor = 'gold';

      indicator2.innerHTML = "Battery is charging";

      chargeIcon.style.visibility = 'visible';

      createNotification("batterie chargé");

      // flip the chargingState flag to 2

      chargingState = 2;

    }

  } 

Js/battery.js (suite)

  } else if(!battery.charging) {

  // Batterie non chargé

    if(chargingState == 2 || chargingState == 0) {

   

      batteryTop.style.backgroundColor = 'yellow';

      batteryCharge.style.backgroundColor = 'yellow';

      indicator2.innerHTML = "Battery not charging";

      chargeIcon.style.visibility = 'hidden';

     

      createNotification("batterie non chargé");

      // flip the chargingState flag to 1

      chargingState = 1;

    }

  }

Page 23: Firefox OS de la théorie à la pratique - OSDC

<!DOCTYPE html>

<html lang="en" manifest="manifest.appcache">

  <head>

    <meta charset="utf­8" />

    <title>Battery example</title>

    <meta content="Gestion battery" name="description" />

    <meta content="width=device­width, initial­scale=1.0" name="viewport" />

    <link href="/images/32.png" rel="icon" size="32x32" />

    <link href="/images/64.png" rel="icon" size="64x64" />

    <link href="/images/128.png" rel="icon" size="128x128" />

    <link href="/images/256.png" rel="icon" size="256x256" />

    <link href="/css/all.css" rel="stylesheet" type="text/css" />

  </head>

  <body>

    // Votre code

    <script src="/javascripts/all.js" type="text/javascript"></script>

   <button id="install">Install app on device</button>

  </body>

</html>

index.html

Page 24: Firefox OS de la théorie à la pratique - OSDC

Tester l'application

Navigateur

Mobile

http://mdn.github.io/battery-quickstart-finished-example/

Page 25: Firefox OS de la théorie à la pratique - OSDC

Simulateur

● Firefox OS simulatorhttps://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/

● Lancer App Manager (developpement/gestionnaire d'applications)

about:app-manager

● Démarrer simulator● Ajouter l'API

ou

Page 26: Firefox OS de la théorie à la pratique - OSDC

App Manager

Page 27: Firefox OS de la théorie à la pratique - OSDC

Résultat

Page 28: Firefox OS de la théorie à la pratique - OSDC

Débug

Page 29: Firefox OS de la théorie à la pratique - OSDC

https://marketplace.firefox.com/developers/

Page 30: Firefox OS de la théorie à la pratique - OSDC

✔ 100 % le contrôle✔ Pas d'intermédiaire✔ Chez vous✔ Déporté✔ Sur la market

Marketplace

Page 31: Firefox OS de la théorie à la pratique - OSDC

https://marketplace.firefox.com/developers/validator

Validateur

Page 32: Firefox OS de la théorie à la pratique - OSDC

https://marketplace.firefox.com/

Marketplace

Page 33: Firefox OS de la théorie à la pratique - OSDC

Autre Utilisation

Page 34: Firefox OS de la théorie à la pratique - OSDC

Industriels utilisant Firefox OS

Kickstarter sur une clé HDMI

Page 35: Firefox OS de la théorie à la pratique - OSDC

http://marketplace.mozilla.org

http://www.mozilla.org/firefoxos

http://wiki.mozilla.org/Gaia/Hacking

https://developer.mozilla.org/en­US/docs/Mozilla/Firefox_OS

URL ?

Page 36: Firefox OS de la théorie à la pratique - OSDC

Sources des slides : Tristant NitotLoic Cuguenhttps://developer.mozilla.org/fr/Apps/Quickstart

Merci