embarquer le web dans un smartphone firefox os - rmll 2015

Post on 07-Aug-2015

1.138 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Embarquer le webDans un smartphone

Firefox OS

Christophe Villeneuve@hellosct1

Qui... est Christophe Villeneuve ?

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

Aujourd'hui

● Le début du commencement● Vos besoins● Mobile ? Le Quoi !!!● La pratique

Le Web

● Principes simples– URL/HTTP/HTML

● Standards ouverts● Pas de Kit de Dév.● Pas d'autorisation● Disponible en Doc● ...

● 1ère génération

● 2ème génération

Le Futur

● Un web sur smartphone

Plateforme ouverte mobile

Vos besoins

● Technique● Logiciels● Matériels● Composants

Technique : les standards du web

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

Logiciels

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

Editeur de texte● Firefox ou autre

– Outils de Débug

– Web IDE

– Firefox OS App Manager

Navigateur

Appareils mobiles (1/2)

Alcatel One TouchFlame

ZTE Open C

GeeksPhone Intex Cloud FX

Et beaucoup d'autres disponibles :

https://www.mozilla.org/fr/firefox/os/devices/

LG Fx0

Appareils mobiles (2/2)

Samsung Nexus 4

Samsung Galaxy

Sony

Etc...

Contrôle APPs

- Multitouch- WebTelephony- WebSMS- Geolocalisation- Battery API- WebNFC- WebVibration

- WebContacts- FullScreen API- Settings API- WebUSB- Camera- WebBluetooth- WebGL

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

GONK

➢GECKO

➢GAIA

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)

➢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

➢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

Architecture

Firefox OSWeb

Icônes

Ex : Firefox OS 2.x Pour nous

● icone-16.png

● icone-32.png

● icone-48.png

● icone-64.png

● icone-128.png

● icone-512.png

{

  "version": "1.0",

  "name": "Batterie",

  "description": "Gestion de la batterie",

  "launch_path": "/index.html",

  "icons": {

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

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

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

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

    "256": "/img/icons/rmll­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.rmll.info"

      }

    }

  },

  "default_locale": "en"

}

Manifest.webapp

Options possibles : - Fullscreen- Permission- Orientation- Serveur- Etc.

https://developer.mozilla.org/en-US/Apps/Build/Manifest

CACHE MANIFEST

# Version 1.0

CACHE:

/css/all.css

/js/lib/all.js

/js/all.js

/index.html

Manifest.appcache

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

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;

    }

  }

<!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

Tester l'application

Navigateur

Mobile

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

Simulateur

● Firefox OS simulator WEBIDEhttps://developer.mozilla.org/fr/docs/Outils/WebIDE

Web IDE

Résultat

Débug

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

Choisir le moyen de consommer

Le market des smartphones

Supermarché

✔ 100 % le contrôle

✔ Pas d'intermédiaire

✔ Chez vous✔ Déporté✔ Sur la market

✔ N'importe qui peut en développer une

✔ Toutes les Apps ne sont pas libres

Market... Marketplace

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

Validateur

Déployer votre API

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

Catégorie

- Informations- Pays / Langue- Média- Détails- Assistance- Info techniques- Catégories

- Informations- Pays / Langue- Média- Détails- Assistance- Info techniques- Catégories

API Marketplace

API : http://firefox-marketplace-api.readthedocs.org/en/latest/index.html

https://marketplace.firefox.com/

Marketplace

http://marketplace.mozilla.org

http://www.mozilla.org/firefoxos

https://developer.mozilla.org/fr/Firefox_OS/Developing_Gaia

https://developer.mozilla.org/fr/Firefox_OS

http://hacks.mozilla.org

URL ?

Merci

Blog : http://firefoxos.mozfr.org

top related