SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
INTRODUCING

FIREFOX OS

Sayak Sarkar (@sayak_sarkar)
http://sayak.in
What is

Firefox OS?

Firefox OS is an open platform for mobile Devices,
built entirely using HTML5 and other open Web standards
which is free from the rules and restrictions of existing
proprietary platforms.
WHY USE HTML5?
In-built distribution - the web
Simple technologies used by lots
of developers
Evolution of existing practices
Open, independent, standardized
PROMISES OF HTML5
firefox OS
How Real is it?
Released in four countries: Spain, Poland, Venezuela
and Columbia (more to come very soon)
18 mobile operator partners, 6 hardware partners
Hardware options: Alcatel One Touch Fire, ZTE Open,
Geeksphone Keon, Geeksphone Peak…
Aimed at emerging markets/low end market
Aimed to be an alternative to feature phones and
unavailable closed environments.
Open source - it is all on GitHub
"Movistar offers
the ZTE Open for
€69, including €30
of balance for
prepaid customers
and a 4GB
microSD card"
ARCHITECTURE
Third Party HTML5 Apps
Third Party HTML5 Apps
GAIA
GAIA
Web APIs / Web Actitivies
Web APIs / Web Actitivies
Gecko rendering engine
Gecko rendering engine
Linux/Gonk (ADB enabled)
Linux/Gonk (ADB enabled)
-

+

=
PREDICTABLE HTML5 SUPPORT
SECURITY
APPLICATION MANIFEST
{
{
"version": "1.0",
"version": "1.0",
"name": "MozillaBall",
"name": "MozillaBall",
"description": "Exciting Open Web development action!",
"description": "Exciting Open Web development action!",
"icons": {
"icons": {
"16": "/img/icon-16.png",
"16": "/img/icon-16.png",
"48": "/img/icon-48.png",
"48": "/img/icon-48.png",
"128": "/img/icon-128.png"
"128": "/img/icon-128.png"
},
},
"developer": {
"developer": {
"name": "Mozilla Labs",
"name": "Mozilla Labs",
"url": "http://mozillalabs.com"
"url": "http://mozillalabs.com"
},
},
"installs_allowed_from": ["*"],
"installs_allowed_from": ["*"],
"appcache_path": "/cache.manifest",
"appcache_path": "/cache.manifest",
"locales": {
"locales": {
"es": {
"es": {
"description": "¡Acción abierta emocionante del desarrollo del Web!",
"description": "¡Acción abierta emocionante del desarrollo del Web!",
"developer": {
"developer": {
"url": "http://es.mozillalabs.com/"
"url": "http://es.mozillalabs.com/"
}
}
}
}
},
},
"default_locale": "en"
"default_locale": "en"
}
}
APPLICATIONS
Web Content
Web Content
Regular web content
Regular web content

Installed Web App
Installed Web App
A regular web app
A regular web app

Privileged Web App
Privileged Web App
More access, more
More access, more
responsibility
responsibility

Certified Web App
Certified Web App
Device-critical
Device-critical
applications
applications
APPLICATIONS
PERMISSIONS

"permissions": {
"permissions": {
"contacts": {
"contacts": {
"description": "Required for autocompletion in the share screen",
"description": "Required for autocompletion in the share screen",
"access": "readcreate"
"access": "readcreate"
},
},
"alarms": {
"alarms": {
"description": "Required to schedule notifications"
"description": "Required to schedule notifications"
}
}
}
}
WEB APIS
WEB APIS (FOR ALL
Vibration API (W3C)
Screen Orientation
Geolocation API
Mouse Lock API (W3C)
Open WebApps
Network Information API (W3C)
Battery Status API (W3C)
Alarm API

Web Activities
Push Notifications API
WebFM API
WebPayment
IndexedDB (W3C)
Ambient light sensor
Proximity sensor
Notification
BATTERY
STATUS API
BATTERY STATUS API
var battery = navigator.battery;
var battery = navigator.battery;
if (battery) {
if (battery) {
var batteryLevel = Math.round(battery.level * 100) + "%",
var batteryLevel = Math.round(battery.level * 100) + "%",
charging = (battery.charging)? "" :: "not ",
charging = (battery.charging)? "" "not ",
chargingTime = parseInt(battery.chargingTime // 60, 10),
chargingTime = parseInt(battery.chargingTime 60, 10),
dischargingTime = parseInt(battery.dischargingTime // 60, 10);
dischargingTime = parseInt(battery.dischargingTime 60, 10);

}
}

// Set events
// Set events
battery.addEventListener("levelchange", setStatus, false);
battery.addEventListener("levelchange", setStatus, false);
battery.addEventListener("chargingchange", setStatus, false);
battery.addEventListener("chargingchange", setStatus, false);
battery.addEventListener("chargingtimechange", setStatus, false);
battery.addEventListener("chargingtimechange", setStatus, false);
battery.addEventListener("dischargingtimechange", setStatus, false);
battery.addEventListener("dischargingtimechange", setStatus, false);
SCREEN
ORIENTATION
API
SCREEN ORIENTATION API
// Portrait mode:
// Portrait mode:
screen.mozLockOrientation("portrait");
screen.mozLockOrientation("portrait");
/*
/*

*/
*/

Possible values:
Possible values:
"landscape"
"landscape"
"portrait"
"portrait"
"landscape-primary"
"landscape-primary"
"landscape-secondary"
"landscape-secondary"
"portrait-primary"
"portrait-primary"
"portrait-secondary"
"portrait-secondary"
VIBRATION API
VIBRATION API
// Vibrate for one second
// Vibrate for one second
navigator.vibrate(1000);
navigator.vibrate(1000);
// Vibration pattern [vibrationTime, pause,…]
// Vibration pattern [vibrationTime, pause,…]
navigator.vibrate([200, 100, 200, 100]);
navigator.vibrate([200, 100, 200, 100]);
// Vibrate for 5 seconds
// Vibrate for 5 seconds
navigator.vibrate(5000);
navigator.vibrate(5000);
// Turn off vibration
// Turn off vibration
navigator.vibrate(0);
navigator.vibrate(0);
NETWORK
INFORMATION
API
NETWORK INFORMATION API

var connection = window.navigator.mozConnection,
var connection = window.navigator.mozConnection,
online = connection.bandwidth > 0,
online = connection.bandwidth > 0,
metered = connection.metered;
metered = connection.metered;
☼

AMBIENT LIGHT
EVENTS
AMBIENT LIGHT EVENTS

window.addEventListener("devicelight", function (event) {
window.addEventListener("devicelight", function (event) {
// The level of the ambient light in lux
// The level of the ambient light in lux
// The lux values for "dim" typically begin below 50,
// The lux values for "dim" typically begin below 50,
// and the values for "bright" begin above 10000
// and the values for "bright" begin above 10000
console.log(event.value);
console.log(event.value);
});
});
PAGE VISIBILITY
PAGE VISIBILITY
document.addEventListener("visibilitychange", function () {
document.addEventListener("visibilitychange", function () {
if (document.hidden) {
if (document.hidden) {
console.log("App is hidden");
console.log("App is hidden");
}
}
else {
else {
console.log("App has focus");
console.log("App has focus");
}
}
});
});
WEB APIS (PRIVILEGED APPS)
Device Storage API
Browser API
TCP Socket API
Contacts API
systemXHR
CONTACTS API
CONTACTS API
var contact = new mozContact();
var contact = new mozContact();
contact.init({name: "Tom"});
contact.init({name: "Tom"});
var request = navigator.mozContacts.save(contact);
var request = navigator.mozContacts.save(contact);
request.onsuccess = function() {
request.onsuccess = function() {
console.log("Success");
console.log("Success");
};
};
request.onerror = function() {
request.onerror = function() {
console.log("Error")
console.log("Error")
};
};
WEB APIS (CERTIFIED APPS)
WebTelephony

WebBluetooth

WebSMS

Permissions API

Idle API

Network Stats API

Settings API

Camera API

Power Management API

Time/Clock API

Mobile Connection API

Attention screen

WiFi Information API

Voicemail
CERTIFIED APPS = THE OS 
CERTIFIED APPS
Dialer

Alarm Clock

Contacts

Camera

Settings

Notes

SMS

First Run Experience

Web browser

Notifications

Gallery

Home Screen

Video Player

Mozilla Marketplace

Music Player

System Updater

E-mail (POP, IMAP)

Localization Support

Calendar
WEB
ACTIVITIES
GET A PHOTO?
var getphoto = new MozActivity({
var getphoto = new MozActivity({
name: "pick",
name: "pick",
data: {
data: {
type: ["image/png", "image/jpeg"], "image/jpg"]
type: ["image/png", "image/jpeg"], "image/jpg"]
}
}
});
});
getphoto.onsuccess = function () {
getphoto.onsuccess = function () {
var img = document.createElement("img");
var img = document.createElement("img");
if (this.result.blob.type.indexOf("image") != -1) {
if (this.result.blob.type.indexOf("image") != -1) {
img.src = window.URL.createObjectURL(this.result.blob);
img.src = window.URL.createObjectURL(this.result.blob);
}
}
};
};
getphoto.onerror = function () { // error
getphoto.onerror = function () { // error
};
};
FIREFOX OS + ANDROID!
APP
DISTRIBUTION
FIREFOX OS MARKETPLACE

https://marketplace.firefox.com/
INSTALL FROM THE WEB…
var installapp = navigator.mozApps.install(manifestURL);
installapp.onsuccess = function(data) {
// App is installed
};
installapp.onerror = function() {
// App wasn't installed, info is in
// installapp.error.name
};
DYNAMIC APP WEB SEARCH
DEVELOPMENT
ENVIRONMENT
FIREFOX OS
BOILERPLATE
APP

https://github.com/robnyman/Firefox-OS-Boilerplate-App
FIREFOX OS SIMULATOR

https://addons.mozilla.org/firefox/addon/firefox-os-simulator/
PROTOTYPING WITH JSFIDDLE

1.Write your code as a JSFiddle
2.Append /webapp.manifest to your Fiddle
URL and paste this link into the Firefox
OS simulator to install the app
3.Alternatively, append /fxos.html to your
Fiddle URL to get an install page like a
typical Firefox OS hosted application

https://hacks.mozilla.org/2013/08/using-jsfiddle-to-prototype-firefox-os-apps/
BUILDING
BLOCKS?
CERTIFIED APPS BUILDING BLOCKS

http://buildingfirefoxos.com/
CERTIFIED APPS BUILDING BLOCKS

http://buildingfirefoxos.com/
MOZILLA BRICK

http://mozilla.github.io/brick/
WHAT’S
COOKING?
MORE WEB APIS
Resource lock API

Spellcheck API

UDP Datagram Socket API

LogAPI

Peer to Peer API

Keyboard/IME API

WebNFC

WebRTC

WebUSB

FileHandle API

HTTP-cache API

Sync API

Calendar API
APPMAKER
Resource lock APIUDP Datagram Socket APIPeer to Peer
APIWebNFCWebUSBHTTP-cache APICalendar
APISpellcheck APILogAPIKeyboard/IME API
WebRTC
FileHandle API
Sync API
RESOURCES
DEVELOPER HUB

https://marketplace.firefox.com/developers/
MOZILLA DEVELOPER BLOG

https://hacks.mozilla.org/category/firefox-os/
FIREFOX OS VIDEO SERIES

https://hacks.mozilla.org/category/videoseries/
FIREFOX OS WIKI

https://developer.mozilla.org/en/docs/Mozilla/Firefox_OS
THANKS!
SAYAK SARKAR
@sayak_sarkar
http://sayak.in/

Contenu connexe

Tendances

Hybrid App Development with PhoneGap
Hybrid App Development with PhoneGapHybrid App Development with PhoneGap
Hybrid App Development with PhoneGapDotitude
 
Firefox OS Intro
Firefox OS IntroFirefox OS Intro
Firefox OS IntroRan Byron
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Developmentthedumbterminal
 
Firefox operating system
Firefox operating systemFirefox operating system
Firefox operating systemNishant Mehare
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapChristian Grobmeier
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapTed Chien
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap InsightsMonaca
 
Ionic Framework: Let's build amazing apps. No Excuses!
Ionic Framework: Let's build amazing apps. No Excuses!Ionic Framework: Let's build amazing apps. No Excuses!
Ionic Framework: Let's build amazing apps. No Excuses!Matheus Cardoso
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationMuhammad Hakim A
 
Retour d’expérience sur Couchbase par James Nocentini
Retour d’expérience sur Couchbase par James NocentiniRetour d’expérience sur Couchbase par James Nocentini
Retour d’expérience sur Couchbase par James NocentiniCocoaHeads France
 
Extending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptExtending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptRoy Clarkson
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile ApplicationsRuwan Ranganath
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011sullis
 
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)Aimee Maree Forsstrom
 

Tendances (20)

Getting Your Hooks into Cordova
Getting Your Hooks into CordovaGetting Your Hooks into Cordova
Getting Your Hooks into Cordova
 
Hybrid App Development with PhoneGap
Hybrid App Development with PhoneGapHybrid App Development with PhoneGap
Hybrid App Development with PhoneGap
 
Firefox OS Intro
Firefox OS IntroFirefox OS Intro
Firefox OS Intro
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Development
 
Firefox operating system
Firefox operating systemFirefox operating system
Firefox operating system
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and Phonegap
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
 
Firefox os
Firefox osFirefox os
Firefox os
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap Insights
 
Ionic Framework: Let's build amazing apps. No Excuses!
Ionic Framework: Let's build amazing apps. No Excuses!Ionic Framework: Let's build amazing apps. No Excuses!
Ionic Framework: Let's build amazing apps. No Excuses!
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native Application
 
Retour d’expérience sur Couchbase par James Nocentini
Retour d’expérience sur Couchbase par James NocentiniRetour d’expérience sur Couchbase par James Nocentini
Retour d’expérience sur Couchbase par James Nocentini
 
Extending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptExtending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScript
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Firefox os
Firefox osFirefox os
Firefox os
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 
What's new in ios 7.0
What's new in ios 7.0What's new in ios 7.0
What's new in ios 7.0
 

Similaire à Firefox OS

Øredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deservesØredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deservesChristian Heilmann
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webChristian Heilmann
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonRobert Nyman
 
Firefox OS - Answering global challenges
Firefox OS - Answering global challengesFirefox OS - Answering global challenges
Firefox OS - Answering global challengesChristian Heilmann
 
Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
 	Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W... 	Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...Robert Nyman
 
Firefox OS workshop, JSFoo, India
Firefox OS workshop, JSFoo, IndiaFirefox OS workshop, JSFoo, India
Firefox OS workshop, JSFoo, IndiaRobert Nyman
 
WebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.jsWebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.jsRobert Nyman
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - MozillaRobert Nyman
 
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San FranciscoFirefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San FranciscoRobert Nyman
 
Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14Carsten Sandtner
 
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Frédéric Harper
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsRobert Nyman
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...Robert Nyman
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, India
Bringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, IndiaBringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, India
Bringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, IndiaRobert Nyman
 
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...Frédéric Harper
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJSBringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJSRobert Nyman
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJSBringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJSRobert Nyman
 
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09Frédéric Harper
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Frédéric Harper
 

Similaire à Firefox OS (20)

Øredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deservesØredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deserves
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
 
Firefox OS - Answering global challenges
Firefox OS - Answering global challengesFirefox OS - Answering global challenges
Firefox OS - Answering global challenges
 
Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
 	Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W... 	Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
 
Firefox OS workshop, JSFoo, India
Firefox OS workshop, JSFoo, IndiaFirefox OS workshop, JSFoo, India
Firefox OS workshop, JSFoo, India
 
WebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.jsWebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.js
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San FranciscoFirefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
 
Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14
 
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - GOTO confer...
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, India
Bringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, IndiaBringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, India
Bringing the Open Web & APIs to 
mobile devices with Firefox OS, JSFoo, India
 
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJSBringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - BrazilJS
 
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJSBringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJS
Bringing the Open Web & APIs to 
mobile devices with Firefox OS - SpainJS
 
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
 
HTML5 WebWorks
HTML5 WebWorksHTML5 WebWorks
HTML5 WebWorks
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
 

Plus de Sayak Sarkar

Google summer of code
Google summer of codeGoogle summer of code
Google summer of codeSayak Sarkar
 
Sculpting a Vibrant Community - MozCamp Asia 2012
Sculpting a Vibrant Community - MozCamp Asia 2012Sculpting a Vibrant Community - MozCamp Asia 2012
Sculpting a Vibrant Community - MozCamp Asia 2012Sayak Sarkar
 
Java API: java.net.InetAddress
Java API: java.net.InetAddressJava API: java.net.InetAddress
Java API: java.net.InetAddressSayak Sarkar
 

Plus de Sayak Sarkar (7)

Google summer of code
Google summer of codeGoogle summer of code
Google summer of code
 
Webmaker
WebmakerWebmaker
Webmaker
 
Sculpting a Vibrant Community - MozCamp Asia 2012
Sculpting a Vibrant Community - MozCamp Asia 2012Sculpting a Vibrant Community - MozCamp Asia 2012
Sculpting a Vibrant Community - MozCamp Asia 2012
 
Java API: java.net.InetAddress
Java API: java.net.InetAddressJava API: java.net.InetAddress
Java API: java.net.InetAddress
 
MozCarnival Pune
MozCarnival PuneMozCarnival Pune
MozCarnival Pune
 
Mozfest Pune
Mozfest PuneMozfest Pune
Mozfest Pune
 
MozParty Pune
MozParty PuneMozParty Pune
MozParty Pune
 

Dernier

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Firefox OS

  • 1. INTRODUCING FIREFOX OS Sayak Sarkar (@sayak_sarkar) http://sayak.in
  • 2. What is Firefox OS? Firefox OS is an open platform for mobile Devices, built entirely using HTML5 and other open Web standards which is free from the rules and restrictions of existing proprietary platforms.
  • 3. WHY USE HTML5? In-built distribution - the web Simple technologies used by lots of developers Evolution of existing practices Open, independent, standardized
  • 6. How Real is it? Released in four countries: Spain, Poland, Venezuela and Columbia (more to come very soon) 18 mobile operator partners, 6 hardware partners Hardware options: Alcatel One Touch Fire, ZTE Open, Geeksphone Keon, Geeksphone Peak… Aimed at emerging markets/low end market Aimed to be an alternative to feature phones and unavailable closed environments. Open source - it is all on GitHub
  • 7. "Movistar offers the ZTE Open for €69, including €30 of balance for prepaid customers and a 4GB microSD card"
  • 8. ARCHITECTURE Third Party HTML5 Apps Third Party HTML5 Apps GAIA GAIA Web APIs / Web Actitivies Web APIs / Web Actitivies Gecko rendering engine Gecko rendering engine Linux/Gonk (ADB enabled) Linux/Gonk (ADB enabled)
  • 12. APPLICATION MANIFEST { { "version": "1.0", "version": "1.0", "name": "MozillaBall", "name": "MozillaBall", "description": "Exciting Open Web development action!", "description": "Exciting Open Web development action!", "icons": { "icons": { "16": "/img/icon-16.png", "16": "/img/icon-16.png", "48": "/img/icon-48.png", "48": "/img/icon-48.png", "128": "/img/icon-128.png" "128": "/img/icon-128.png" }, }, "developer": { "developer": { "name": "Mozilla Labs", "name": "Mozilla Labs", "url": "http://mozillalabs.com" "url": "http://mozillalabs.com" }, }, "installs_allowed_from": ["*"], "installs_allowed_from": ["*"], "appcache_path": "/cache.manifest", "appcache_path": "/cache.manifest", "locales": { "locales": { "es": { "es": { "description": "¡Acción abierta emocionante del desarrollo del Web!", "description": "¡Acción abierta emocionante del desarrollo del Web!", "developer": { "developer": { "url": "http://es.mozillalabs.com/" "url": "http://es.mozillalabs.com/" } } } } }, }, "default_locale": "en" "default_locale": "en" } }
  • 13. APPLICATIONS Web Content Web Content Regular web content Regular web content Installed Web App Installed Web App A regular web app A regular web app Privileged Web App Privileged Web App More access, more More access, more responsibility responsibility Certified Web App Certified Web App Device-critical Device-critical applications applications
  • 15. PERMISSIONS "permissions": { "permissions": { "contacts": { "contacts": { "description": "Required for autocompletion in the share screen", "description": "Required for autocompletion in the share screen", "access": "readcreate" "access": "readcreate" }, }, "alarms": { "alarms": { "description": "Required to schedule notifications" "description": "Required to schedule notifications" } } } }
  • 17. WEB APIS (FOR ALL Vibration API (W3C) Screen Orientation Geolocation API Mouse Lock API (W3C) Open WebApps Network Information API (W3C) Battery Status API (W3C) Alarm API Web Activities Push Notifications API WebFM API WebPayment IndexedDB (W3C) Ambient light sensor Proximity sensor Notification
  • 19. BATTERY STATUS API var battery = navigator.battery; var battery = navigator.battery; if (battery) { if (battery) { var batteryLevel = Math.round(battery.level * 100) + "%", var batteryLevel = Math.round(battery.level * 100) + "%", charging = (battery.charging)? "" :: "not ", charging = (battery.charging)? "" "not ", chargingTime = parseInt(battery.chargingTime // 60, 10), chargingTime = parseInt(battery.chargingTime 60, 10), dischargingTime = parseInt(battery.dischargingTime // 60, 10); dischargingTime = parseInt(battery.dischargingTime 60, 10); } } // Set events // Set events battery.addEventListener("levelchange", setStatus, false); battery.addEventListener("levelchange", setStatus, false); battery.addEventListener("chargingchange", setStatus, false); battery.addEventListener("chargingchange", setStatus, false); battery.addEventListener("chargingtimechange", setStatus, false); battery.addEventListener("chargingtimechange", setStatus, false); battery.addEventListener("dischargingtimechange", setStatus, false); battery.addEventListener("dischargingtimechange", setStatus, false);
  • 21. SCREEN ORIENTATION API // Portrait mode: // Portrait mode: screen.mozLockOrientation("portrait"); screen.mozLockOrientation("portrait"); /* /* */ */ Possible values: Possible values: "landscape" "landscape" "portrait" "portrait" "landscape-primary" "landscape-primary" "landscape-secondary" "landscape-secondary" "portrait-primary" "portrait-primary" "portrait-secondary" "portrait-secondary"
  • 23. VIBRATION API // Vibrate for one second // Vibrate for one second navigator.vibrate(1000); navigator.vibrate(1000); // Vibration pattern [vibrationTime, pause,…] // Vibration pattern [vibrationTime, pause,…] navigator.vibrate([200, 100, 200, 100]); navigator.vibrate([200, 100, 200, 100]); // Vibrate for 5 seconds // Vibrate for 5 seconds navigator.vibrate(5000); navigator.vibrate(5000); // Turn off vibration // Turn off vibration navigator.vibrate(0); navigator.vibrate(0);
  • 25. NETWORK INFORMATION API var connection = window.navigator.mozConnection, var connection = window.navigator.mozConnection, online = connection.bandwidth > 0, online = connection.bandwidth > 0, metered = connection.metered; metered = connection.metered;
  • 27. AMBIENT LIGHT EVENTS window.addEventListener("devicelight", function (event) { window.addEventListener("devicelight", function (event) { // The level of the ambient light in lux // The level of the ambient light in lux // The lux values for "dim" typically begin below 50, // The lux values for "dim" typically begin below 50, // and the values for "bright" begin above 10000 // and the values for "bright" begin above 10000 console.log(event.value); console.log(event.value); }); });
  • 29. PAGE VISIBILITY document.addEventListener("visibilitychange", function () { document.addEventListener("visibilitychange", function () { if (document.hidden) { if (document.hidden) { console.log("App is hidden"); console.log("App is hidden"); } } else { else { console.log("App has focus"); console.log("App has focus"); } } }); });
  • 30. WEB APIS (PRIVILEGED APPS) Device Storage API Browser API TCP Socket API Contacts API systemXHR
  • 32. CONTACTS API var contact = new mozContact(); var contact = new mozContact(); contact.init({name: "Tom"}); contact.init({name: "Tom"}); var request = navigator.mozContacts.save(contact); var request = navigator.mozContacts.save(contact); request.onsuccess = function() { request.onsuccess = function() { console.log("Success"); console.log("Success"); }; }; request.onerror = function() { request.onerror = function() { console.log("Error") console.log("Error") }; };
  • 33. WEB APIS (CERTIFIED APPS) WebTelephony WebBluetooth WebSMS Permissions API Idle API Network Stats API Settings API Camera API Power Management API Time/Clock API Mobile Connection API Attention screen WiFi Information API Voicemail
  • 34. CERTIFIED APPS = THE OS 
  • 35. CERTIFIED APPS Dialer Alarm Clock Contacts Camera Settings Notes SMS First Run Experience Web browser Notifications Gallery Home Screen Video Player Mozilla Marketplace Music Player System Updater E-mail (POP, IMAP) Localization Support Calendar
  • 37.
  • 38. GET A PHOTO? var getphoto = new MozActivity({ var getphoto = new MozActivity({ name: "pick", name: "pick", data: { data: { type: ["image/png", "image/jpeg"], "image/jpg"] type: ["image/png", "image/jpeg"], "image/jpg"] } } }); }); getphoto.onsuccess = function () { getphoto.onsuccess = function () { var img = document.createElement("img"); var img = document.createElement("img"); if (this.result.blob.type.indexOf("image") != -1) { if (this.result.blob.type.indexOf("image") != -1) { img.src = window.URL.createObjectURL(this.result.blob); img.src = window.URL.createObjectURL(this.result.blob); } } }; }; getphoto.onerror = function () { // error getphoto.onerror = function () { // error }; };
  • 39. FIREFOX OS + ANDROID!
  • 42. INSTALL FROM THE WEB… var installapp = navigator.mozApps.install(manifestURL); installapp.onsuccess = function(data) { // App is installed }; installapp.onerror = function() { // App wasn't installed, info is in // installapp.error.name };
  • 43. DYNAMIC APP WEB SEARCH
  • 47. PROTOTYPING WITH JSFIDDLE 1.Write your code as a JSFiddle 2.Append /webapp.manifest to your Fiddle URL and paste this link into the Firefox OS simulator to install the app 3.Alternatively, append /fxos.html to your Fiddle URL to get an install page like a typical Firefox OS hosted application https://hacks.mozilla.org/2013/08/using-jsfiddle-to-prototype-firefox-os-apps/
  • 49. CERTIFIED APPS BUILDING BLOCKS http://buildingfirefoxos.com/
  • 50. CERTIFIED APPS BUILDING BLOCKS http://buildingfirefoxos.com/
  • 53. MORE WEB APIS Resource lock API Spellcheck API UDP Datagram Socket API LogAPI Peer to Peer API Keyboard/IME API WebNFC WebRTC WebUSB FileHandle API HTTP-cache API Sync API Calendar API
  • 54. APPMAKER Resource lock APIUDP Datagram Socket APIPeer to Peer APIWebNFCWebUSBHTTP-cache APICalendar APISpellcheck APILogAPIKeyboard/IME API WebRTC FileHandle API Sync API
  • 58. FIREFOX OS VIDEO SERIES https://hacks.mozilla.org/category/videoseries/