FirefoxOS – About me – Why do we need a new mobile OS ?



FirefoxOS – About me – Why do we need a new mobile OS ?

0 1


Intro_FirefoxOS

Ma présentation pour l'event "Introduction à FirefoxOS" de Netlinks

On Github MedMack / Intro_FirefoxOS

FirefoxOS

by Med Manai ( aka Mack ) - Mozilla Tunisia Team

About me

  • Etudiant à l'ISI
  • Membre & Chef de projet "FirefoxOS Project" à Freeways Club
  • Membre & Lead Designer à Mozilla Tunisia
  • Représentant Mozilla en Tunisie

Why do we need a new mobile OS ?

Mobile = iOS | Android ?

$ ?!

Does my smartphone worth all that money ?

Tracking !!

I believe in Open Source

Others..

What about an OS:

100% Open Source Gratos ! Same functionnalitieswith ~10% of the price Based on the new Web technologies No need to buy a new device for the lastest update

FirefoxOS gives you that and more..

C'est quoi ?

Un système d'exploitation open source développé par Mozilla pour les smartphones ( +tablettes ) basé sur les nouvelles technologies du Web

Quoi de spécial ?

Faisons une comparaison

What you need for an iOS App

What you need for an Android App

What you need for a FirefoxOS App

This is awesome right ?!

Architecture & WebAPI

Trois couches

Gonk

Gecko

Gaia

Gonk

Linux Kernel

Android fork

Gecko

Implémente les standars du HTML

Moteur de rendu HTML de Firefox

Machine virtuelle JavaScript

Implémente les WebAPIs

Gaia

UI

Utilise les WebAPIs

Écrite en HTML5 + CSS3 + JS

Mobile World Congress 2013

Photo de partenaires

23 partenaires

Les constructeurs

  • ZTE
  • Alcatel
  • Geeksphone
  • LG
  • Sony ( loading.. 50% )
  • Huwawei ( loading.. 50% )

ZTE Open

Alcatel One Touch Fire

Geeksphone Keon & Peak

Geeksphone Peak+

LG D300 Fireweb

Coming : Sony Xperia device(s) & a Huwawei device

Where are the apps ?

Mozilla MarketPlace

The power of the Web in your hands

HTML5 is the wonder of the world

Games in HTML5 will be like

Hell no !

With Firefox and Gecko gaming is no longer the same

Le marché

Concurrer les grands ?On a notre propre marché

FirefoxOS in 12 coutries so far

FirefoxOS en Tunisie ?let's make the first step

You are about to see

magic

Environnement de travail

https://addons.mozilla.org/fr/firefox/addon/firefox-os-simulator/

Hello World !

index.html

<body>
  <h3>Hello World ! :)</h3>
</body>
              

Hello World !

manifest.webapp

{
  "name":"Hello World",
  "description":"Hello world pour le workshop Netlinks Event",
  "launch_path":"/index.html",
  "developer": {
    "name":"medmack",
    "url":"http://github.com/MedMack"
  },
  "default_locale":"en"
}
            

Les WebAPIs

La batterie

var battery = navigator.battery;
battery.level;
battery.charging;
battery.chargingTime;
battery.dischargingTime;
            

Avec un EventListener

battery.addEventListener("levelchange", myEventHandler, false);
battery.addEventListener("chargingchange", myEventHandler, false);
battery.addEventListener("chargintimechange", myEventHandler, false);
battery.addEventListener("dischargingtimechange", myEventHandler, false);
          

Vibration API

navigator.vibrate(100);
navigator.vibrate([100,50,200]);
navigator.vibrate(0);
navigator.vibrate([]);
          

Les Notifications

var myNotification = navigator.mozNotification.createNotification(
                    "Hello", 
                    "Juste pour dire salut :p", 
                    iconURL);
//myNotification.onclick = function () {}
//myNotification.onclose = function () {}

myNotification.show();
          

manifest

"permissions":{
  "desktop-notification":{
    "description":"Accès aux notification"
  }
}
          

Capteurs de proximité

window.addEventListener('deviceproximity', myEventHandler);
function myEventHandler(event){
  var val = event.value;
  var max = event.max;
  var min = event.min;
  //TODO
}
        

Permission :

"permissions":{
  "background-sensor":{
  }
}
        

Téléphonie

var tel = navigator.mozTelephony;
var muted = tel.muted; //modifiable
var speakers = tel.speackerEnabled; // modifiable
var unAppel = tel.dial("+21650123456");
unAppel.hangUp();
tel.onincoming = function(event){
  var appel = event.call;
  var num = appel.number;
  appel.anwser();
};
  

Permission

telephony
            

WebSMS

var sms = navigator.mozSMS;
sms.send("+21650123456", "Bonjour :)");
sms.onreveived = function (event){
  var msg = event.message;
};
  

Permission

sms
            

Et plein d'autres WebAPIS

  • WebBluetooth
  • Camera API
  • WebActivities
  • Contact API
  • DeviceStorage API
  • TCP Socket API
  • Ambiant Light Event
  • Geolocation API
  • Alarm API

API à venir

  • CalendarAPI
  • WebRTC
  • WebNFC
  • WebUSB
  • Sync API

Publier

Manifest checker

https://marketplace.mozilla.org/developers

Contact Me

  • Email : Mannai.med.mack@gmail.com
  • Twitter : @MedMannai

Contact Mozilla Tunisia

  • Site Web: Mozilla-tunisia.org
  • IRC: mozilla-tunisia.org/IRC
  • Email: contact@mozilla-tunisia.org
  • Facebook: Mozilla Tunisia
  • Twitter: @MozillaTunisia

Merci :)