Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

56
Firefox OS the platform you deserves Frédéric Harper Senior Technical Evangelist @ Mozilla @fharper | outofcomfortzone.net Budapest Firefox OS Workshop – 2013-11-23
  • date post

    18-Oct-2014
  • Category

    Technology

  • view

    3.755
  • download

    1

description

The platform you deserve, a Firefox OS presentation I did at the Firefox OS workshop we did in Budapest, Hungary.

Transcript of Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Page 1: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OSthe platform you deservesFrédéric Harper

Senior Technical Evangelist @ Mozilla

@fharper | outofcomfortzone.net

Budapest

Fir

efo

x O

S W

ork

shop –

20

13

-11

-23

Page 2: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Elnézést, én nem beszélek magyarulThanks Google translate…

Page 3: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

What you deserve

Page 4: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23
Page 5: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OS

Using HTML5, CSS3 and JavaScriptwith a number of APIsto build apps.

Page 6: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

It’s open source

Page 7: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Architecture

Page 8: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Benefits of HTML5

In-built distribution – the Web

Simple technologies used by a lot of developers

Evolution of existing practices

Open, independent, and standardised

Page 9: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Some facts

Released in Spain, Poland, Venezuela, Hungary, Colombia,

Uruguay, Mexico, and Brazil

18 mobile operator, and 6 hardware partners

Hardware options: ZTE Open, Alcatel One Touch Fire,

Geeksphone Keon, Geeksphone Peak, LG FireWeb…

Aimed at emerging markets/low end market

Page 10: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Telenor Hungary - Alcatel One Touch Fire

Page 11: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

HTML5 + manifest (JSON) = Firefox OS app{

"version": "1",

"name": "Firefox OS Boilerplate App",

"launch_path": "/index.html",

"description": "Boilerplate Firefox OS app with example use cases to get started",

"icons": {

"16": "/images/logo16.png”,},

"developer": {

"name": "Robert Nyman",

"url": http://robertnyman.com

},

"default_locale": "en",

"permissions": {

"geolocation": {

"description": "Marking out user location"

}

}

}

Page 12: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

A Firefox OS app?

Hosted or packaged app

Using

Vanilla HTML5

Regular API

Privileged API

Certified API

Page 13: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OS Marketplace

Page 14: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web APIs

Page 15: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web APIs – Regular

• Alarm API• Ambient light sensor• Archive API• Battery Status API• Geolocation API• IndexedDB• Network Information API• Notifications API

• Open WebApps• Proximity sensor• Push API• Screen Orientation• Vibration API• Web Activities• WebFM API• WebPayment

packaged

hosted

Page 16: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Ambient Light Sensor

Page 17: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Ambient Light Sensor

window.addEventListener("devicelight", function (event) {

// The level of the ambient light in lux

// The lux values for "dim" typically begin below 50,

// and the values for "bright" begin above 10000

console.log(event.value);

});

Page 18: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Battery Status

Page 19: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Battery Status

var battery = navigator.battery;

if (battery) {

var batteryLevel = Math.round(battery.level * 100) + "%",

 

charging = (battery.charging)? “yes" : "no",

chargingTime = parseInt(battery.chargingTime / 60, 10,

dischargingTime = parseInt(battery.dischargingTime / 60, 10);

 

battery.addEventListener("levelchange", setStatus, false);

battery.addEventListener("chargingchange", setStatus, false);

battery.addEventListener("chargingtimechange", setStatus, false);

}

Page 20: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web APIs – Privileged

• Browser API• Contacts API• Device Storage API• systemXHR• TCP Socket API

packaged

Page 21: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Browser

Page 22: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Browser

<div>

<span id='location-bar'></span>

<button onclick='go_button_clicked()'>Go</button>

</div>

<div id='load-status'></div>

<div id='security-status'></div>

<img id='favicon'>

<div id='title'></div>

<iframe mozbrowser src=‘yoursite.com' id='browser'></iframe>

Page 23: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Browser

addEventListener('mozbrowserloadstart', function(e) {

//Do stuff

});

/*

Possible values:

"mozbrowserloadstart“ "mozbrowserloadend"

"mozbrowserlocationchange“ "mozbrowsertitlechange"

"mozbrowsericonchange“ "mozbrowsersecuritychange"

"mozbrowsercontextmenu“ "mozbrowsererror"

"mozbrowserkeyevent“ "mozbrowsershowmodalprompt"

"mozbrowseropenwindow“ "mozbrowserclose"

*/

Page 24: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Contacts

Page 25: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Contacts

var contact = new mozContact();

contact.init({name: "Tom"});

 

var request = navigator.mozContacts.save(contact);

request.onsuccess = function() {

console.log("Success");

};

 

request.onerror = function() {

console.log("Error")

};

Page 26: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web APIs – Certified

• Camera API• Idle API• Mobile Connection API• Network Stats API• Permissions API• Power Management API• Settings API• Time/Clock API

• Voicemail• WebBluetooth• WebSMS• WebTelephony• WiFi Information API

OS

Page 27: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web Activities

Page 28: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web Activities

• browse• configure• costcontrol• dial• open• pick• record• save-bookmark

• share• view• update• new

• mail• websms/sms• webcontacts/contact

Page 29: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Pick

var activity = new MozActivity({

name: "pick",

//Provide the data required

//by the filter of the activity

data: {

type: "image/jpeg"

}

});

Page 30: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Pick

activity.onsuccess = function () {

var img = document.createElement("img");

if (this.result.blob.type.indexOf("image") != -1) {

img.src = window.URL.createObjectURL(this.result.blob);

}

};

activity.onerror = function () {

//error

};

Page 31: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Dial

var call = new MozActivity({

name: "dial",

data: {

number: "+46777888999"

}

});

Page 32: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

new webcontacts/contactvar newContact = new MozActivity({

name: "new",

data: {

type: "webcontacts/contact",

params: {

givenName: "Frédéric",

lastName: "Harper",

email: ”[email protected]",

company: "Mozilla"

}

}

});

Page 33: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web Activity Received Handler

navigator.mozSetMessageHandler('activity', function(activityRequest) {

var option = activityRequest.source;

if (activityRequest.source.name === "pick") {

// Do something to handle the activity

if (picture) {

activityRequest.postResult(picture);

}

else {

activityRequest.postError("Unable to provide a picture");

}

}

});

Page 34: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Don’t forget the manifest

"activities": {

"pick": {

"filters": {

"type": ["image/jpeg", "image/png"]

},

"disposition": "inline",

"returnValue": true,

"href": "/index.html#pick"

}

}

Page 35: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Web Activities & hosted app…

Page 36: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

How to start

Page 37: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23
Page 38: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Phonegap

Page 39: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OS Simulator

Page 40: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OS App Manager

Page 41: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox Web Developer Tools

Page 42: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Mozilla Developer Network

Page 43: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Mozilla Hacks blog

Page 44: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

StackOverflow

Page 45: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Some candies

Page 46: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OS Boilerplate

Page 47: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Prototyping with JSFiddle

• Append /webapp.manifest

to install the app in the

Firefox OS simulator

• Append /fxos.html to get

an install page like a

Firefox OS hosted app.

Page 48: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Firefox OS UI component

Page 49: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Mozilla Brick

Page 50: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

What’s next

Page 51: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

More Web APIs

• Calendar API

• FileHandle API Sync API

• Keyboard/IME API WebRTC

• HTTP-cache API

• Peer to Peer API

• Spellcheck API LogAPI

• Resource lock API

• UDP Datagram Socket API

• WebNFC

• WebUSB

Page 52: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Appmaker

Page 53: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

WARNING(big voice + sound effect)It’s only the beginning…

Page 54: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Resources

Firefox OS Simulatorhttp://j.mp/fxosSimulator

Firefox OS App Managerhttp://j.mp/fxosAppManager

Mozilla Developer Networkhttps://developer.mozilla.org

Firefox OS WebAPI & Web Activitieshttp://j.mp/fxosWebAPI

Page 55: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Resources

StackOverflow forumhttp://j.mp/fxosStackOverflow

Firefox OS Boilerplatehttp://j.mp/fxosBoilerplate

Firefox OS UI Componenthttp://buildingfirefoxos.com/

Mozilla Brickhttp://j.mp/mozBrick

Page 56: Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-11-23

Frédéric Harper

[email protected]@fharper

http://hacks.mozilla.comhttp://outofcomfortzone.net