68
Firefox OS a startup opportunity Frédéric Harper Sr. Technical Evangelist @ Mozilla @fharper | outofcomfortzone.net Mobile Startups Toronto & HTML5 Toronto meetup Toronto, Canada 2014-01-08

Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

  • View
    1.494

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Firefox OSa startup opportunity

Frédéric Harper

Sr. Technical Evangelist @ Mozilla

@fharper | outofcomfortzone.net

Mobile Startups Toronto

& HTML5 Toronto meetup

Toronto, Canada

2014-01-08

Page 2: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

The startup business model

Page 3: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Creative Commons: http://j.mp/13UsL5W

Page 4: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Which platform should I start with?

Page 5: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

You should start with the web…

Page 6: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

38 billion devicesconnected in 2020

ABI Research - 2013-05-09 - http://j.mp/38billion

Page 7: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 8: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

What you deserve

Page 9: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 10: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 11: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 12: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Built with the Web

Using HTML5, CSS3 and

JavaScript

with a number of APIs

to build apps.

Page 13: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

It’s open source

Page 14: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Architecture

Page 15: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 16: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Some facts

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

Uruguay, Mexico, Brazil, and Greece

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 17: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 18: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

A Firefox OS app?

Creating a hosted or packaged app

Using

Vanilla HTML5

Regular API

Privileged API

Certified API

Page 19: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 20: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Web APIs

Page 21: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 22: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Ambient Light Sensor

Page 23: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 24: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

DEMO Boilerplate – Ambient Light Sensor

Page 25: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Battery Status

Page 26: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 27: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

DEMO Boilerplate – Battery status

Page 28: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Web APIs – Privileged

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

packaged

Page 29: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Browser

Page 30: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 31: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Browser

addEventListener('mozbrowserloadstart', function(e) {

//Do stuff

});

/*

Possible values:

"mozbrowserloadstart“ "mozbrowserloadend"

"mozbrowserlocationchange“ "mozbrowsertitlechange"

"mozbrowsericonchange“ "mozbrowsersecuritychange"

"mozbrowsercontextmenu“ "mozbrowsererror"

"mozbrowserkeyevent“ "mozbrowsershowmodalprompt"

"mozbrowseropenwindow“ "mozbrowserclose"

*/

Page 32: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Contacts

Page 33: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 34: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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/OEM

Page 35: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Web Activities

Page 36: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Web Activities

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

• share• view• update• new

• mail• websms/sms• webcontacts/contact

Page 37: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Pick

var activity = new MozActivity({

name: "pick",

//Provide the data required

//by the filter of the activity

data: {

type: "image/jpeg"

}

});

Page 38: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 39: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Dial

var call = new MozActivity({

name: "dial",

data: {

number: "+46777888999"

}

});

Page 40: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 41: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 42: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Don’t forget the manifest

"activities": {

"pick": {

"filters": {

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

},

"disposition": "inline",

"returnValue": true,

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

}

}

Page 43: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 44: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

How to start

Page 45: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Creative Commons: http://j.mp/Ilm7wx

Page 46: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Phonegap

Page 47: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Firefox OS Simulator (1.1 – no Maverick)

Page 48: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Firefox OS App Manager + Simulator (1.2+)

Page 49: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Firefox Web Developer Tools

Page 50: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

DEMO How to debug a Firefox OS app

Page 51: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 52: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 53: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 54: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Some candies

Page 55: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 56: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 57: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 58: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 59: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

What’s next

Page 60: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08
Page 61: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

More Web APIs & features

• 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 62: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Creative Commons: http://j.mp/1gIdcPF

To infinity, and beyond… it’s

only the beginning!

Page 63: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

While building your startupWhy not port your web app to Firefox OS? You’ll reach a new audience…

Page 64: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

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 65: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Resources

StackOverflow forumhttp://j.mp/fxosStackOverflow

Firefox OS Boilerplatehttp://j.mp/fxosBoilerplate

Firefox OS UI Componenthttp://buildingfirefoxos.com/

Mozilla Brickhttp://j.mp/mozBrick

Page 66: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

If you plan toor are building

a Firefox OS app…

Please let me know!

Page 67: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Attribution

ShareAlike

http://creativecommons.org/licenses/by-sa/4.0/

Page 68: Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto meetup - 2014-01-08

Frédéric Harper

[email protected]@fharper

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