Scrivere Webapp per Firefox OS - Orru

download Scrivere Webapp per Firefox OS - Orru

If you can't read please download the document

Transcript of Scrivere Webapp per Firefox OS - Orru

Giancarlo Orru

Scrivere webapp per Firefox OS

[email protected] - Investech-blue

Chi sono Un 'frontendista' dal 19951996 WWW.ILMESSAGGERO.IT

1998 WWW.SFEXAMINER.COM (Intranet JS)

1999 WEBROOM (CMS Grafico in DHTML / AJAX!)

2000-3 WWW.HSE.IT (TV COMMERCIALE)

2005 WWW.CDFLASH.COM

2007 WWW.TELSTRA.COM.AU (Mobile TV)

2008 Mobile TV e Audio streaming in Flashlite

2010 WWW.DU.AE (Mobile Social) - Wurfl

2012 WWW.ITVONLINE.NL (WEBTV di KPN)

Colleziono siti (MOBYLE.IT, SHOPMETRO.IT, LAPUB.IT...)

[email protected]

ROME 11-12 april 2014 Giancarlo Orru

Il primi due miliardo di smartphones sono stati costruiti con PalmOS, Symbian, IOS, Android...Per i prossimi due... Firefox OS e' pronto!

ROME 11-12 april 2014 Giancarlo Orru

Icone

Browser

Marketplace

Firefox OS Schermate di esempio

Firefox OS - DevicesKeon, Peak

ZTE Open - FF OS 1.0.1 (Spagna)

Alcatel OneTouch Fire - FF OS 1.1

Alcatel OneTouch Fire S - FF OS 1.3 (Q3 2014)

Geeksphone Revolution - FF OS 1.2 Dual OS!

Huawei Y300II - FF OS 1.1

LG Fireweb - FF OS 1.1

Alcatel OneTouch Fire 7 - FF OS 1.3

APC PAPER (Cortex A9 800Mhz - 720P) Free 4 Bug solved

Panasonic Smart TV (Q4 2014)

Sony... gadgets?

ROME 11-12 april 2014 Giancarlo Orru

MWC 2014Spreadtrum da 25$ (Cortex A5) EDGE Per il mercato asiatico (India, Indonesia)

Flame 4,5 NFC (for developers)

Foxconn InFocus Tablet 10

VIA VIXEN Tablet 7

ROME 11-12 april 2014 Giancarlo Orru

Scrivere Webapp per IOS / Android...(Per non parlare delle APP)HTML5

Phonegap/Cordova

Titanium Appcelerator

99 dollari all'anno (IOS)

60% degli sviluppatori IOS spende piu' di quanto ricava (non calcolando il costo del Mac...)

Ma quante app vengono respinte?

Vogliono subito una CC???

ROME 11-12 april 2014 Giancarlo Orru

Scrivere Webapp per Firefox OSHTML5 e' 'nativo'!

WebApi

Web Activities

Phonegap/Cordova

Firefox OS Simulator, App manager, Responsive Design View, Web Console, Debugger, Monitor

Tutto GRATIS!!!

ROME 11-12 april 2014 Giancarlo Orru

App Manager - Firefox 26+

ROME 11-12 april 2014 Giancarlo Orru

ROME 11-12 april 2014 Giancarlo Orru

Firefox OS ArchitectureLinux AOSP (Android Open Source Project), hardware abstraction layer , open souce libraries GONK

Firefox OS application runtime, support for HTML, CSS e JavaScript Gecko!!!

The user interface of the Firefox OS platform - GAIA!!!

ROME 11-12 april 2014 Giancarlo Orru

Packaged e Hosted appsHosted app e' semplice, basta aggiungere il manifest alla vostra webapp attuale!Manutenzione semplicePer farle funzionare offline si sfrutta l'appcache:

Packaged app Tutte le risorse devono essere incluse in uno zipRisorse incluse devono essere poco movimentate

ROME 11-12 april 2014 Giancarlo Orru

App security e WebApiWeb apps Alarm, Music, Video, FM Radio, Geolocation, Simple push, Storage (senza limiti...)

Privileged apps Viste e approvate - Alarm clock, calendar alarms, New email, incoming SMS, Browser, Contacts, TCP Socket

Certified apps (Solo per Operatori e OEM) Phone calls, bluetooth, camera, mobile connection, settings, power management, sms, wifi...

ROME 11-12 april 2014 Giancarlo Orru

ROME 11-12 april 2014 Giancarlo Orru

ROME 11-12 april 2014 Giancarlo Orru

WWW.ANSA.IT

WWW.ADNKRONOS.IT

ROME 11-12 april 2014 Giancarlo Orru

ROME 11-12 april 2014 Giancarlo Orru

Creazione di una hosted app a partire da una Webapp gia' scritta in HTML, CSS, Javascript con qualsiasi frameworkScrivere il Manifest

Tutto qui???

ROME 11-12 april 2014 Giancarlo Orru

Esempio di Manifest{"name": "Meteo", "version": "1.0", "description": "A meteo app","launch_path": "/ff01/index.html","icons": { "60": "/icons/icon01_60.png", "128": "/icons/icon01_128.png" },"developer": { "name": "Giancarlo Orru", "url": "http://www.mobyle.it" },"permissions": { "geolocation": { "description": "Marking out user location" } }}

ROME 11-12 april 2014 Giancarlo Orru

Esempio di WebApi index.htm WebApi samples Vibrate

Battery

File app.js(function () { var vibr = document.querySelector("#vibrate"); if (vibr) { vibr.onclick = function () { window.navigator.vibrate(500); }; } var batt = document.querySelector("#battery"); if (batt) { batt.onclick = function () {var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;alert("Battery status: " + battery.level * 100 + "%" + (battery.charging ? " Battery is charging": "")); };}})();

Esempio di WebActivity tratto dal Boilerplate di Robert Nyman : Take a picture Take a picture

ROME 11-12 april 2014 Giancarlo Orru

File app.js:(function () { var pickImage = document.querySelector("#pick-image"); if (pickImage) { pickImage.onclick = function () { var pick = new MozActivity({ name: "pick", data: { type: ["image/png", "image/jpg", "image/jpeg"], nocrop: true // don't allow the user to crop the image } });

ROME 11-12 april 2014 Giancarlo Orru

pick.onsuccess = function () { var img = document.createElement("img"); img.src = window.URL.createObjectURL(this.result.blob); var imagePresenter = document.querySelector("#image-presenter"); var myImg = imagePresenter.appendChild(img); imagePresenter.style.display = "block"; myImg.style.width = "95%"; }; pick.onerror = function () { console.log("Can't view the image"); }; }; }})();

ROME 11-12 april 2014 Giancarlo Orru

File manifest.webapp:{ "name": "FFOS", "description": "First FireFox OS APP!", "launch_path": "/pct/index.htm", "developer": { "name": "Gengisca", "url": "http://www.mobyle.it" }, "icons": { "32": "/pct/logo32.png", "60": "/pct/logo60.png", "90": "/pct/logo90.png","120": "/pct/logo120.png","128": "/pct/logo128.png","256": "/pct/logo256.png" }, "default_locale": "en" }

ROME 11-12 april 2014 Giancarlo Orru

Manifest.appcache se device e' offlineCACHE MANIFEST# Build 2014-02-15

CACHE:index.htmjs/app.js

NETWORK:*

www.html5rocks.com/en/tutorials/appcache/beginner

Boilerplate completo di Robert Nyman:https://github.com/robnyman/Firefox-OS-Boilerplate-App

http://hacks.mozilla.org/2013/01/introducing-the-firefox-os-boilerplate-app/

Altri esempi 'basic':Addy Osmani The Nitty Gritty

http://thenittygritty.co/ffos-appsRob Lauer - Adobe

http://www.adobe.com/devnet/html5/articles/writing-your-first-firefox-os-app.html

ROME 11-12 april 2014 Giancarlo Orru

Responsive appsLayout pattern

Media Query

viewport!:

E se lo vogliamo compatibile con il vecchio BlackBerry? Responsive server RESS (Wurfl, MobileAware, Antenna...)

ROME 11-12 april 2014 Giancarlo Orru

Responsive design, device detection, o entrambi?Firefox OS non viene riconosciuto come mobile device dai maggiori siti italiani!!!

Responsive Server RESS Il server genera il codice a seconda dello 'User-Agent'

ROME 11-12 april 2014 Giancarlo Orru

User Agent stringsChrome UA: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36Safari UA: Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25Opera UA: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 OPR/20.0.1387.82Internet Explorer 11 UA: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like GeckoFireFox UA:Mozilla/5.0 (Windows NT 6.0; rv:28.0) Gecko/20100101 Firefox/28.0Alcatel UA: Mozilla/5.0 (Mobile; ALCATELOneTouch4012X; rv:18.1) Gecko/18.1 Firefox/18.1

ROME 11-12 april 2014 Giancarlo Orru

Per far sparire la barra degli indirizzi:Inserire una splash window in testa (loading...)window.onload = function() { window.scroll(0,480); }

Usate il font Fira (c'e' solo quello... o no???) "Fira Sans", "Feura Sans", "Open Sans", sans-serif;

ROME 11-12 april 2014 Giancarlo Orru

Scrivere una animazione o un gioco in HTML5CSS semplice, tutti i browser lo gestiscono al meglio

Canvas hardware acceleration Parecchi giochi HTML5 lo utilizzano

SVG Veloce se si utilizza l'object model direttamente, puo' confondere le idee, non puoi usare bitmap direttamente, ma effetti speciali!!!

Webgl (da firefox 27 anche debugger)requestAnimationFrame e non setIntervaladdEventListener e non onEvent

ROME 11-12 april 2014 Giancarlo Orru

Mozilla Personahttp://www.mozilla.org/en-US/persona/

Validazione delle app

https://marketplace.firefox.com/developers/validator

Distribuzione delle app

https://marketplace.firefox.com/developers/docs/deploy

ROME 11-12 april 2014 Giancarlo Orru

LibriQuick Guide For Firefox OS App Development

Firefox OS for Activists

Beginning Firefox OS HTML5 Game Programming Links

https://developer.mozilla.org

https://developer.mozilla.org/en-US/Firefox_OS

https://developer.mozilla.org/en-US/docs/Web

http://buildingfirefoxos.com

https://github.com/mozilla-b2g

ROME 11-12 april 2014 Giancarlo Orru

HTML5TEST.COM

ROME 11-12 april 2014 Giancarlo Orru

ROME 11-12 april 2014 Speaker's name