aplicații firefox os cu html5

60
Dr. Sabin Buraga Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași www.purl.org/net/busaco + + =

Upload: sabin-buraga

Post on 29-Nov-2014

1.569 views

Category:

Technology


2 download

DESCRIPTION

De la suita de tehnologii HTML5 la maniera de dezvoltare de aplicații Web pentru sistemul de operare Firefox OS destinat dispozitivelor mobile.

TRANSCRIPT

Page 1: Aplicații Firefox OS cu HTML5

Dr. Sabin Buraga Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași

www.purl.org/net/busaco

+ + =

Page 2: Aplicații Firefox OS cu HTML5

+ + =

designer Web

Page 3: Aplicații Firefox OS cu HTML5

+ + =

dezvoltator Web

Page 4: Aplicații Firefox OS cu HTML5

+ + =

altcineva cool (?!)

Page 5: Aplicații Firefox OS cu HTML5

+ + =

Salut, eu sunt suita de tehnologii HTML5!

Page 6: Aplicații Firefox OS cu HTML5

+ + =

vocabular (set de elemente + atribute) folosit pentru marcarea paginilor Web

Page 7: Aplicații Firefox OS cu HTML5

+ + =

suită de API-uri facilitând procesarea documentelor la nivelul navigatorului Web – desktop, mobil,…

Page 8: Aplicații Firefox OS cu HTML5

+ + =

permite dezvoltarea standardizată de aplicații Web

Page 9: Aplicații Firefox OS cu HTML5

+ + =

recurge la tehnologii înrudite referitoare la prezentare via foi de stiluri în cascadă – CSS

model conceptual – DOM procesare la nivel de navigator Web – JavaScript

…și altele

Page 10: Aplicații Firefox OS cu HTML5

+ + =

.web-ui { tehnologie: CSS3; }

Cascading Style Sheets

Page 11: Aplicații Firefox OS cu HTML5

@font-face Web fonts calc() as CSS unit value 2.1 selectors Counters Feature Queries Filter Effects Generated content Gradients Grid Layout Hyphenation inline-block Masks min/max-width/height outline position:fixed Regions Repeating Gradients resize property Table display 3D Transforms Animation

Background-image options Border images Border-radius (rounded corners) Box-shadow Box-sizing Colors Media Queries Multiple backgrounds Multiple column layout object-fit/object-position Opacity Overflow-wrap selectors Text-overflow Text-shadow Transforms Transitions word-break Flexible Box Layout Module Font feature settings rem (root em) units

Page 12: Aplicații Firefox OS cu HTML5

http://caniuse.com/

Page 13: Aplicații Firefox OS cu HTML5

+ + =

acces & manipulare DOM

(Document Object Model)

Page 14: Aplicații Firefox OS cu HTML5

<html> <body> <p> Tehnologii Web </p> <div> <img src="web.png"/> </div> </body> </html>

HTML HtmlElement

HTML BodyElement

HTML Paragraph Element

Text

HTML DivElement

HTML ImageElement

document text (.html) reprezentare în memorie ca arbore de obiecte

Page 15: Aplicații Firefox OS cu HTML5

+ + =

procesare via API-uri

this.javascript

Page 16: Aplicații Firefox OS cu HTML5

+ + =

în curs de standardizare la Consorțiul Web statut candidate recommendation (decembrie 2012)

www.w3.org/TR/html5/

Page 17: Aplicații Firefox OS cu HTML5

diverse specificații HTML5 în lucru: dev.w3.org/html5/

Page 18: Aplicații Firefox OS cu HTML5

“HTML5 should not be considered as a whole. You should cherry-pick the technology

that suits the solution to your problem.” Remy Sharp

Page 19: Aplicații Firefox OS cu HTML5

+ + =

semantic markup

noi elemente de structurare a conținutului

Page 20: Aplicații Firefox OS cu HTML5

<!DOCTYPE html> <html> <head> <title>Titlu glorios al paginii sau aplicației Web</title> <link rel="stylesheet" type="text/css" href="stiluri.css" /> <meta charset="utf-8" /> </head> <body> <header> <h1>Titlu principal</h1> <p class="slogan">...</p> </header> <article> <nav class="menu"> <a href="...">Undeva</a> * <a href="...">Altundeva</a> </nav> <section> <p>ceva aparent interesant?!</p> <aside>informații adiționale</aside> </section> <section>...</section> </article> <footer> <h6>Ultima actualizare, autorul, termeni legali,...</h6> </footer> </body> </html>

detalii la http://html5doctor.com/

Page 21: Aplicații Firefox OS cu HTML5

+ + =

semantic markup

noi tipuri de interacțiune

via formulare Web search tel url email date number range

Page 22: Aplicații Firefox OS cu HTML5

+ + =

semantic markup

microdate schema.org

Page 23: Aplicații Firefox OS cu HTML5

+ + =

grafică 2D & 3D

<canvas> în contextul 2D

Page 24: Aplicații Firefox OS cu HTML5

www.html5canvastutorials.com

<canvas> + JavaScript =

Page 25: Aplicații Firefox OS cu HTML5

+ + =

grafică 2D & 3D

<canvas> în contextul 3D

WebGL

Page 26: Aplicații Firefox OS cu HTML5

instrumente pentru dezvoltatori: CopperLicht, CubicVR, PhiloGL, SceneJS, TDL (ThreeD Library), Three.js

Page 27: Aplicații Firefox OS cu HTML5

+ + =

grafică 2D & 3D

grafică vectorială SVG / TinySVG

Page 28: Aplicații Firefox OS cu HTML5

biblioteci Javascript: BonsaiJS, D3.js, Raphaël.js,…

<svg> ... <circle cx="75" cy="75" r="10" class="forma"/> </svg>

.forma { /* stiluri pentru construcțiile SVG */ fill: red; stroke: yellow; stroke-width: 3px; }

Page 29: Aplicații Firefox OS cu HTML5

+ + =

multimedia

<audio> <video>

API-uri de procesare a sunetului

Page 30: Aplicații Firefox OS cu HTML5

+ + =

Web Storage (localStorage & sessionStorage)

baze de date: IndexedDB caching via ApplicationCache

offline & storage

Page 31: Aplicații Firefox OS cu HTML5

+ + =

mesaje între documente XMLHttpRequest2

WebSocket evenimente de la server

WebRTC

connectivity & real-time

Page 32: Aplicații Firefox OS cu HTML5

+ + =

performanța

WebWorker RequestAnimationFrame

date direct în URL – BlobURL

Page 33: Aplicații Firefox OS cu HTML5

+ + =

drag & drop orientation geolocation

starea bateriei

device access

Page 34: Aplicații Firefox OS cu HTML5

+ + =

notificări acces la camera Web

acces la fișiere – FileAPI

device access

Page 35: Aplicații Firefox OS cu HTML5

Blob URLs Cross-document messaging Cross-Origin Resource Sharing Device Orientation events File API FileReader API Filesystem & FileWriter API Full Screen API Geolocation getUserMedia/Stream API Hashchange event IndexedDB

matchMedia Navigation Timing API PageVisibility requestAnimationFrame Server-sent DOM events Shared Web Workers Typed Arrays Web Audio API Web Notifications Web Sockets Web Storage Web Workers

HTML5 – cele mai importante API-uri JavaScript http://www.w3.org/standards/techs/js#w3c_all

Page 36: Aplicații Firefox OS cu HTML5

http://mobilehtml5.org/

Page 37: Aplicații Firefox OS cu HTML5

+ + =

Super!... Mai multe despre tehnologiile HTML5?

Page 38: Aplicații Firefox OS cu HTML5

www.webplatform.org

Page 39: Aplicații Firefox OS cu HTML5

http://diveintohtml5.org/

Page 40: Aplicații Firefox OS cu HTML5

developer.mozilla.org

Page 41: Aplicații Firefox OS cu HTML5

www.html5rocks.com

Page 42: Aplicații Firefox OS cu HTML5

http://html5please.com/

Page 43: Aplicații Firefox OS cu HTML5

http://webplatformtools.org/

Page 44: Aplicații Firefox OS cu HTML5

http://html5weekly.com/

Page 45: Aplicații Firefox OS cu HTML5

+ + =

aplicație Firefox OS

Page 46: Aplicații Firefox OS cu HTML5

+ + =

aplicație Firefox OS

construită cu HTML, CSS și JavaScript

Page 47: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

Page 48: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

document HTML5 structurare conținut +

interacțiune cu utilizatorul

Page 49: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

document HTML5 structurare conținut +

interacțiune cu utilizatorul

<!DOCTYPE html> <html> <head manifest="offline.appcache"> <meta charset="utf-8" /> <title>Aplicație Firefox OS</title> <meta name="description" content="..."/> <link rel="stylesheet" href="css/app.css"/> </head> <body> <!-- conținut oferit de aplicație --> <!-- indicator baterie --> <div id="indicator">...</div> <script type="text/javascript" data-main="js/init.js" src="js/lib/require.js"> </script> </body> </html>

Page 50: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

stiluri CSS, eventual imagini pentru redarea datelor

Page 51: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

stiluri CSS, eventual imagini pentru redarea datelor

html { background: url(../img/pattern.png); } /* responsive Web design */ @media only screen and (max-width : 500px) { #indicator { /* indicator baterie */ border: 2px solid #999; text-align: center; ... } }

Page 52: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

programe JavaScript recurg la API-uri HTML5

& API-uri specifice Firefox OS

Page 53: Aplicații Firefox OS cu HTML5

. │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib

... // creăm via DOM un element <canvas> var canvas = document.createElement ('canvas'); var ctx = canvas.getContext ('2d'); canvas.width = game.width * blocksize; canvas.height = game.height * blocksize; canvas.id = 'game-canvas'; ... // desenăm numărul nivelului jocului ctx.fillStyle = 'rgb(0, 0, 0)'; ctx.font = '14pt SilkscreenNormal, sans-serif'; ctx.fillText ('Level: ' + (game.levelidx + 1), canvas.width - blocksize, canvas.height + 1); ...

fragment de cod JavaScript implementând un joc

Page 54: Aplicații Firefox OS cu HTML5

+ + =

sistemul Firefox OS

Page 55: Aplicații Firefox OS cu HTML5

+ + =

sistemul Firefox OS

Gaia – interfața cu utilizatorul

Page 56: Aplicații Firefox OS cu HTML5

+ + =

sistemul Firefox OS

Gecko redarea & procesarea datelor via standarde Web deschise

(HTML, CSS, JS etc.)

Page 57: Aplicații Firefox OS cu HTML5

+ + =

sistemul Firefox OS

Gonk biblioteci & nucleu Linux

Page 58: Aplicații Firefox OS cu HTML5

+ + =

resurse pentru creatorii de aplicații Firefox OS (documentații, exemplificări, referințe, ajutor,…)

oferite de Mozilla:

developer.mozilla.org/en/docs/Mozilla/Firefox_OS

Page 59: Aplicații Firefox OS cu HTML5

+ + =

resurse pentru creatorii de aplicații Firefox OS (documentații, exemplificări, referințe, ajutor,…)

puse la dispoziție de alții:

http://firefoxos.info/ http://buildingfirefoxos.com/

Page 60: Aplicații Firefox OS cu HTML5

Dr. Sabin Buraga Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași

www.purl.org/net/busaco

+ + =

Mult succes!