m Aplicativos muullttiippllaattaaffoorrmmaa 
bbaasseeaaddooss eemm FFiirreeffooxx OOSS 
Eliezer Bernart 
Mozilla Brasil 
#FirefoxOSFW
- + =
Desenvolvendo AApplliiccaattiivvooss
O que eu preciso conhecer 
para criar aplicativos para 
Firefos OS?
Como eu posso distribuir 
meu aplicativo?
HHoossppeeaaddoo 
vvss.. 
EEmmppaaccoottaaddoo
E o que eu posso acessar?
Níveis de Acesso 
Normal 
Privilegiado 
Certificado
FFeerrrraammeennttaass Column 3 
Row 1 Row 2 Row 3 Row 4 
12 
10 
8 
6 
4 
2 
0 
Column 1 
Column 2
Navegador atualizado
Editor de texto favorito
Firefox Web IDE
Hora da Ação!
AArrqquuiivvoo ddee MMaanniiffeessttoo 
{ 
"name": "Meu aplicativo", 
"description": "Um simples aplicativo", 
"launch_path": "/index.html", 
"icons": { 
"128": "/images/icon-128.png" 
}, 
"developer": { 
"name": "Seu nome", 
"url": "Seu website" 
}, 
"permissions": { 
"geolocation": { 
"description": "Por quê você quer usar essa API?" 
} 
}, 
"default_locale": "pt-br" 
}
BBaatttteerryy SSttaattuuss AAPPII 
navigator.battery.level; 
navigator.battery.charging; 
navigator.battery.chargingTime; 
navigator.battery.dischargingTime; 
navigator.battery.addEventListener('levelchange', function () { 
// Seu código 
}); 
● 
navigator.battery.addEventListener('chargingchange', function () { }); 
navigator.battery.addEventListener('chargingtimechange', function () { }); 
navigator.battery.addEventListener('dischargingtimechange', function () { });
Demo!
Notification.requestPermission ( function (permission) { 
console.log(permission); 
// 'default', 'granted', 'denied' 
}); 
var notification = new Notification('Olá Mundo!', { 
dir: 'rtl', 
lang: 'pt-BR', 
body: 'Seja bem vindo!', 
icon: '/images/mensagem.png', 
onclick: function (event) { 
console.log('click!'); 
} 
// onshow, onerror, onclose 
}); 
WWeebb NNoottiiffiiccaattiioonnss AAPPII
Demo!
navigator.geolocation.getCurrentPosition ( 
function (position) { 
console.log(Date(position.timestamp)); 
console.log(position.coords.latitude); 
console.log(position.coords.longitude); 
console.log(position.coords.altitude + ' metros'); 
console.log(position.coords.accuracy + ' metros'); 
console.log(position.coords.altitudeAccuracy + ' metros'); 
console.log(position.coords.heading + ' graus'); 
console.log(position.coords.speed + ' m/s'); 
}, 
function (positionError) { 
// PERMISSION_DENIED, POSITION_UNAVAILABLE, TIMEOUT 
console.log(positionError.code + ', ' + positionError.message); 
}, 
{ enableHighAccuracy: true } 
); 
GGeeoollooccaattiioonn AAPPII
Demo!
var atividade = new MozActivity({ 
name:'dial', 
data: { 
number: '9999-9999' 
} 
}); 
MMoozzAAccttiivviittiieess 
https://developer.mozilla.org/en-US/docs/Web/API/Web_Activities
RReeffeerrêênncciiaass 
Guia Rápido de Desenvolvimento para Firefox OS – André Garzia 
https://leanpub.com/guiarapidofirefoxos 
Mozilla Developers Network – Firefox OS 
https://developer.mozilla.org/pt-BR/Firefox_OS 
Mozilla Hacks 
https://hacks.mozilla.org/ 
Can I Use 
http://caniuse.com 
W3C Specs 
http://www.w3.org/TR/ 
Power Rangers e todas as demais imagens relacionadas são uma marca registrada e todos os 
direitos pertencem aos seus criadores.
OObbrriiggaaddoo!! 
EElliieezzeerr BBeerrnnaarrtt 
@@eelliieezzeerrbbeerrnnaarrtt 
eelliieezzeerrbb..ccoomm..bbrr 
eelliieezzeerrbbeerrnnaarrtt@@ggmmaaiill..ccoomm

Aplicativos Multiplataforma Baseados em Firefox OS

  • 1.
    m Aplicativos muullttiippllaattaaffoorrmmaa bbaasseeaaddooss eemm FFiirreeffooxx OOSS Eliezer Bernart Mozilla Brasil #FirefoxOSFW
  • 8.
  • 10.
  • 11.
    O que eupreciso conhecer para criar aplicativos para Firefos OS?
  • 13.
    Como eu possodistribuir meu aplicativo?
  • 14.
  • 15.
    E o queeu posso acessar?
  • 16.
    Níveis de Acesso Normal Privilegiado Certificado
  • 17.
    FFeerrrraammeennttaass Column 3 Row 1 Row 2 Row 3 Row 4 12 10 8 6 4 2 0 Column 1 Column 2
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
    AArrqquuiivvoo ddee MMaanniiffeessttoo { "name": "Meu aplicativo", "description": "Um simples aplicativo", "launch_path": "/index.html", "icons": { "128": "/images/icon-128.png" }, "developer": { "name": "Seu nome", "url": "Seu website" }, "permissions": { "geolocation": { "description": "Por quê você quer usar essa API?" } }, "default_locale": "pt-br" }
  • 23.
    BBaatttteerryy SSttaattuuss AAPPII navigator.battery.level; navigator.battery.charging; navigator.battery.chargingTime; navigator.battery.dischargingTime; navigator.battery.addEventListener('levelchange', function () { // Seu código }); ● navigator.battery.addEventListener('chargingchange', function () { }); navigator.battery.addEventListener('chargingtimechange', function () { }); navigator.battery.addEventListener('dischargingtimechange', function () { });
  • 25.
  • 26.
    Notification.requestPermission ( function(permission) { console.log(permission); // 'default', 'granted', 'denied' }); var notification = new Notification('Olá Mundo!', { dir: 'rtl', lang: 'pt-BR', body: 'Seja bem vindo!', icon: '/images/mensagem.png', onclick: function (event) { console.log('click!'); } // onshow, onerror, onclose }); WWeebb NNoottiiffiiccaattiioonnss AAPPII
  • 28.
  • 29.
    navigator.geolocation.getCurrentPosition ( function(position) { console.log(Date(position.timestamp)); console.log(position.coords.latitude); console.log(position.coords.longitude); console.log(position.coords.altitude + ' metros'); console.log(position.coords.accuracy + ' metros'); console.log(position.coords.altitudeAccuracy + ' metros'); console.log(position.coords.heading + ' graus'); console.log(position.coords.speed + ' m/s'); }, function (positionError) { // PERMISSION_DENIED, POSITION_UNAVAILABLE, TIMEOUT console.log(positionError.code + ', ' + positionError.message); }, { enableHighAccuracy: true } ); GGeeoollooccaattiioonn AAPPII
  • 31.
  • 32.
    var atividade =new MozActivity({ name:'dial', data: { number: '9999-9999' } }); MMoozzAAccttiivviittiieess https://developer.mozilla.org/en-US/docs/Web/API/Web_Activities
  • 35.
    RReeffeerrêênncciiaass Guia Rápidode Desenvolvimento para Firefox OS – André Garzia https://leanpub.com/guiarapidofirefoxos Mozilla Developers Network – Firefox OS https://developer.mozilla.org/pt-BR/Firefox_OS Mozilla Hacks https://hacks.mozilla.org/ Can I Use http://caniuse.com W3C Specs http://www.w3.org/TR/ Power Rangers e todas as demais imagens relacionadas são uma marca registrada e todos os direitos pertencem aos seus criadores.
  • 36.
    OObbrriiggaaddoo!! EElliieezzeerr BBeerrnnaarrtt @@eelliieezzeerrbbeerrnnaarrtt eelliieezzeerrbb..ccoomm..bbrr eelliieezzeerrbbeerrnnaarrtt@@ggmmaaiill..ccoomm