api's do html5 - davidson alencar - webbr2013

120
O poder do HTML5

Upload: davidson-alencar

Post on 24-May-2015

550 views

Category:

Technology


4 download

DESCRIPTION

Baseado no impacto dos dispositivos móveis e da sua produtividade, serão demonstradas as vantagens da adoção do HTML5 e suas APIs em projetos Web, tendo como os principais benefícios: portabilidade, fácil manutenção, otimização de recursos e resultados. Será discutido o estágio atual do HTML5, tendências, como gerar negócios com a tecnologia e também soluções que podem ser adotadas enquanto os navegadores dos dispositivos móveis não implementam todos os recursos da especificação do HTML5.

TRANSCRIPT

Page 1: API's do HTML5 - Davidson Alencar - WebBR2013

O poder do HTML5

Page 2: API's do HTML5 - Davidson Alencar - WebBR2013

/cursoiLearn

www.iLearn.com.br

[email protected]

(21) 2557.3810

Gestor Projetos Web

Professor Conteudista iLearn

• Formações Web Mobile HTML5

• Canvas Games

@DavidsonAlencar

Apresentação

Page 3: API's do HTML5 - Davidson Alencar - WebBR2013

Objetivo

• Vantagens do HTML5

• APIs em projetos Web

• Principais benefícios

• Estágio atual do HTML5

• Evolução

• Como gerar negócios

Page 4: API's do HTML5 - Davidson Alencar - WebBR2013

A Origem

Page 5: API's do HTML5 - Davidson Alencar - WebBR2013

Primeira Página na Web

Tim Berners-Lee

Page 6: API's do HTML5 - Davidson Alencar - WebBR2013

Evolução

Page 7: API's do HTML5 - Davidson Alencar - WebBR2013

WHATWGWeb Hypertext Application Technology Working Group

WHATWG

Page 8: API's do HTML5 - Davidson Alencar - WebBR2013

A União

Page 9: API's do HTML5 - Davidson Alencar - WebBR2013
Page 11: API's do HTML5 - Davidson Alencar - WebBR2013

VANTAGENS

Page 12: API's do HTML5 - Davidson Alencar - WebBR2013

É melhor. É o atual. É poderoso.

Vantagens

Page 13: API's do HTML5 - Davidson Alencar - WebBR2013

É melhor. É o atual. É poderoso.

Veio resolver umasérie de problemas

Vantagens

Page 15: API's do HTML5 - Davidson Alencar - WebBR2013

VOCÊ AINDA NÃO ESTÁ UTILIZANDO O HTML5?

Page 16: API's do HTML5 - Davidson Alencar - WebBR2013

POR QUAL MOTIVO?

Page 17: API's do HTML5 - Davidson Alencar - WebBR2013

CSS 2.1

Curiosidade…

Page 18: API's do HTML5 - Davidson Alencar - WebBR2013

CSS 2.110 anos da sua criação e até agora continua um candidato a recomendação

Curiosidade…

Page 19: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade

Page 20: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade - Desktop

http://html5test.com/results/desktop.html

Page 21: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade - Mobile

http://html5test.com/results/mobile.html

Page 22: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade…

Page 23: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade – IE6 ainda existe?

Page 24: API's do HTML5 - Davidson Alencar - WebBR2013

http://www.modernizr.com/

Compatibilidade

Page 25: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade

HTML5• appCache• Canvas• Drag’n Drop• HTML5 Audio/Vídeo• IndexedDB• WebSockets• Web Workers• outros...

CSS3• @font-face• background-size• border-radius• Fexible box model (flexbox)• Multiple backgrounds• CSS Animations• CSS 3D Transitions• outros....

Page 26: API's do HTML5 - Davidson Alencar - WebBR2013

Compatibilidade

HTML5• appCache• Canvas• Drag’n Drop• HTML5 Audio/Vídeo• IndexedDB• WebSockets• Web Workers• outros...

CSS3• @font-face• background-size• border-radius• Fexible box model (flexbox)• Multiple backgrounds• CSS Animations• CSS 3D Transitions• outros....

Fallbacks e Polyfills

Page 27: API's do HTML5 - Davidson Alencar - WebBR2013

http://www.modernizr.com/

Compatibilidade – Navegadores

Page 28: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 - APIs

3D; Gráficos; EfeitosMultimídia

Performance; Integração

Acesso a Dispositivos

Offline;Armazenamento Conectividade

Semântica CSS3

Page 29: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 - APIs

3D; Gráficos; EfeitosMultimídia

Performance; Integração

Acesso a Dispositivos

Offline;Armazenamento Conectividade

Semântica CSS3

Page 30: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs

3D; Gráficos; EfeitosMultimídia

Performance; Integração

Acesso a Dispositivos

Offline;Armazenamento Conectividade

Semântica CSS3

Page 31: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Semântica

Semântica

Page 32: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5: Estrutura do (X)HTML

<div class=“header”>

<div class=“footer”>

<div id=“nav”> <div id=“aside”>

<div class=“section”>

<div class=“header”>

<div class=“footer”>

<div class=“article”>

Page 33: API's do HTML5 - Davidson Alencar - WebBR2013

Fonte: https://developers.google.com/

HTML5: Dados Estatísticos

Page 34: API's do HTML5 - Davidson Alencar - WebBR2013

<header>

<footer>

<nav> <aside>

<section>

<header>

<footer>

<article>

HTML5: Estrutura do HTML5

Page 35: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5

Escreva menos e

faça mais...

Page 36: API's do HTML5 - Davidson Alencar - WebBR2013

...mas nem tanto!!!

<!DOCTYPE HTML><meta charset="utf-8"><title>HTML5</title><p>Meu primeiro HTML5</p>

HTML5

Page 37: API's do HTML5 - Davidson Alencar - WebBR2013

<!DOCTYPE HTML><meta charset="utf-8"><title>HTML5</title><p>Meu primeiro programa em HTML5</p>

http://validator.w3.org/check

HTML5 – Validador da W3C

Page 38: API's do HTML5 - Davidson Alencar - WebBR2013

type="tel"type="search"type="url"type="email"type="datetime"type="date"type="month"type="week"type="time"type="datetime-local"type="number"type="range"type="color"

HTML5 – Formulário

• <input type=“???” />

Page 39: API's do HTML5 - Davidson Alencar - WebBR2013

Atributos

• accept=“image/*”• multiple• pattern=“\([0-9]{2}\)” • placeholder• required

• outros...

HTML5 – Formulário

Page 40: API's do HTML5 - Davidson Alencar - WebBR2013

<input type="text" name="bairro" list="listaSites"> <datalist id="listaSites">

<option label="iLearn" value="http://www.iLearn.com.br"> <option label="Web.br" value="http://conferenciaweb.w3c.br"> <option label="W3C Brasil" value="http://www.w3c.br"> <option label="W3C" value="http://www.w3.org">

</datalist>

HTML5 – DataList

Page 41: API's do HTML5 - Davidson Alencar - WebBR2013

<progress value="0" max="100" id="progress"></progress> <output name="result"></output>

HTML5 – Progress

Page 42: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – MathML

Binomial Coefficient

Sophomore's dream

Divergence

Complex number

Moore determinant

Page 43: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – MathML

<math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <mi>A</mi> <mo>=</mo> <mfenced open="[" close="]"> <mtable> <mtr> <mtd><mi>x</mi></mtd> <mtd><mi>y</mi></mtd> </mtr> <mtr> <mtd><mi>z</mi></mtd> <mtd><mi>w</mi></mtd> </mtr> </mtable> </mfenced> </mrow> </math>

Page 44: API's do HTML5 - Davidson Alencar - WebBR2013

<p>O <abbr title="World Wide Web Consortium"> W3C </abbr> é responsável pela padronização da <abbr title="World Wide Web">Web</abbr>.</p>

<p>Endereço da iLearn fica na <abbr title="Travessa"> Trv. </abbr> do Ouvidor, 17 - 3º andar</p>

<acronym>

HTML5 – abbr

<abbr>

Page 45: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Multimídia

Multimídia

Page 46: API's do HTML5 - Davidson Alencar - WebBR2013

<video width="500" height="400" controls> <source src="os-simpsons.webm" type='video/webm"'> <source src="os-simpsons.ogv" type='video/ogg"'> <source src="os-simpsons.mp4" type='video/mp4"'> <p>Seu navegador não suporta a tag vídeo</p></video>

HTML5 – APIs – Multimídia - Vídeo

Page 47: API's do HTML5 - Davidson Alencar - WebBR2013

<audio controls> <source src="dream-theater.aac" type="audio/aac"> <source src="dream-theater.ogg" type="audio/ogg"> <source src="dream-theater.mp3" type="audio/mpeg"> <p>seu navegador não suporta audio</p> </audio>

HTML5 – APIs – Multimídia - Áudio

Page 48: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Multimídia - GetUserMedia

navigator.getUserMedia ( config, successCallback, errorCallback

);

Page 49: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Multimídia - GetUserMedia

Page 50: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access

Acesso a Dispositivos

Page 51: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access– Ambient Light

Aumente e diminua o som com a luz

Page 52: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Speech

<input type="text" lang="pt-br" x-webkit-speech />

Page 53: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – GeoLocation

Page 54: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – GeoLocation

navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options

);

Page 55: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – GeoLocation

id = navigator.geolocation.watchPosition(successCallback, errorCallback, options

);navigator.geolocation.clearWatch(id);

Page 56: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – GeoLocation

Page 57: API's do HTML5 - Davidson Alencar - WebBR2013

Taxibeat 99Taxis

HTML5 – APIs – Device Access – GeoLocation

Easy Taxi

Page 58: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Device Orientation

Y ZX

Page 59: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Device Orientation

Y ZX

alpha

Page 60: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Device Orientation

Y ZX

beta

Page 61: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Device Orientation

YX

Z

gamma

Page 62: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Device Orientation

Page 63: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Device Access – Device Motion

Page 64: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Gráficos

2D/3D, Gráficos e Efeitos

Page 65: API's do HTML5 - Davidson Alencar - WebBR2013

Fonte: http://www.google.com/doodles/googles-15th-birthday

HTML5 – APIs – Gráficos - Canvas

Page 66: API's do HTML5 - Davidson Alencar - WebBR2013

<canvas width=”300” height=”150” id=“desenho1”></canvas>

HTML5 – APIs – Gráficos – Canvas

Page 67: API's do HTML5 - Davidson Alencar - WebBR2013

<canvas></canvas>

JavaScript:• ctx.rect(x,y,l,a)• ctx.fillRect(x,y,l,a)• ctx.fill()• etc..

HTML5 – APIs – Gráficos – Canvas

Page 68: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Gráficos – Canvas

Page 69: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Gráficos – WebGL

O futuro do HTML53D Web

Page 70: API's do HTML5 - Davidson Alencar - WebBR2013

http://threejs.org/

HTML5 – APIs – Gráficos – WebGL com three.js

Page 71: API's do HTML5 - Davidson Alencar - WebBR2013

http://helloracer.com/webgl/

HTML5 – APIs – Gráficos – WebGL com three.js

Page 72: API's do HTML5 - Davidson Alencar - WebBR2013

http://gravitymovie.warnerbros.com

HTML5 – APIs – Gráficos – WebGL com three.js

Page 73: API's do HTML5 - Davidson Alencar - WebBR2013

http://hexgl.bkcore.com/

HTML5 – APIs – Gráficos – WebGL com three.js

Page 74: API's do HTML5 - Davidson Alencar - WebBR2013

http://www.zygotebody.com

HTML5 – APIs – Gráficos – WebGL

Page 75: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance

Performance e Integração

Page 76: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – Drag and Drop

<div id="retangulo" ondrop="soltar(event)" ondragover="permiteSoltar(event)"></div>

<img id=“webbr" src="webbr.png" draggable="true" ondragstart="arrastar(event)" />

...

Page 77: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – Conteúdo Editável

<div id="editable" contenteditable="true">Este conteúdo é editavel.<br/><br/> Também estou guardando via localStorage.

</div>

Page 78: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – FullScreen

Page 79: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

Page 80: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

Page 82: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

• Podem usar:– Objeto navigator,

– Objeto location (somente leitura),

– Importar outros arquivos JS com o método importScripts()

– Utilizar objetos do JS como: • Object, Array, Date, Math, String,

– Ajax – XMLHttpRequest,

– Métodos temporizadores:• setTimeout() / clearTimeout() e setInterval() / clearInterval()

– Criar outros WebWorkers.

Page 83: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

• Não podem usar:– Objeto window

– Objeto document

– Objeto parent

– DOM

Page 84: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

webworker.js

webpage.js

Page 85: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

webworker.js

webpage.js

Page 86: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

webworker.js

webpage.js

Page 87: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Performance – WebWorker

Page 88: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade

Conectividade

Page 89: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

ctiviHTTP

ServerPOLLING

Existe nova msg?

não

“olá”

Davi

Existe nova msg?

não

Existe nova msg?

não

Existe nova msg?

Davi disse: “olá”

Page 90: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

ctiviHTTP

ServerLONG POLLING

Existe nova msg?

não

“olá”

DaviExiste nova msg?

Davi disse: “olá”

Page 91: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

ctiviHTTP

ServerSERVER-SENT EVENT

“olá”

Davi

não

não

não

Davi disse: “olá”

Page 92: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

serversent.js

serversent.php

Page 93: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

serversent.js

serversent.php

Page 94: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

serversent.js

serversent.php

Page 95: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

serversent.js

serversent.php

Dispara Server-Sent Event

Page 96: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade – Server-Sent Event

serversent.js

serversent.php

Page 97: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade - WebSocket

ctiviHTTP

Server

WebSocketServer

HTTP: request e response

WebSocket: bidirecional

Existe nova msg?

Davi disse: “olá”

“olá”

Davi

Davi

Davi disse: “olá”

“olá”

Page 98: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade - WebSocket

Page 99: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade - WebSocket

connection.send(‘minha mensagem’);

Page 100: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Conectividade - WebSocket

http://martinsikora.com/nodejs-and-websocket-simple-chat-tutorial

Page 101: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Armazenamento

Offline e Armazenamento

Page 102: API's do HTML5 - Davidson Alencar - WebBR2013

• Web Storage:• localStorage x sessionStorage

• WebSQL DB• Indexed DB• AppCache• File APIs• FileSystem APIs• Eventos:

• Online• Offline

HTML5 – APIs – Armazenamento

Page 103: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Armazenamento

App IconPopQuiz

Page 104: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Armazenamento – WebSQL

Page 105: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Armazenamento – WebSQL

Page 106: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – Armazenamento - IndexedDB

Page 107: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3

Estilos – CSS3

Page 108: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3

• @font-face• background-colo• border-image• border-radius• box-shadow• FlexBox• Multiple Backgrounds• Opacity

• CSS Coluns• text-shadow• CSS Animations• CSS Gradientes• CSS Reflections• CSS 2D Tranformations• CSS 3D Tranformations• CSS Transitions

Page 109: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3 – Media Queries

Fonte: http://stuffandnonsense.co.uk/

Monitor Grande Monitor Médio Tablet Mobile

Page 110: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3 – Media Queries

Monitor Grande

@media screen and (min-width: 1024) { /* Estilos aplicados em telas MAIORES que 1024px */ }

Page 111: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3 – Media Queries

Monitor Médio

@media screen and (max-width: 1024px) { /* Estilos aplicados em telas MENORES que 1024px */ }

Page 112: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3 – Media Queries

Tablet

@media screen and (max-width: 700px) { /* Estilos aplicados em telas MENORES que 700px */ }

Page 113: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3 – Media Queries

Mobile

@media screen and (max-width: 480px) { /* Estilos aplicados em telas MENORES que 480px */ }

Page 114: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5 – APIs – CSS3 – Media Queries

Página

/*Estilos da página*/

@media screen and (min-width: 1024px) { /*customizações MONITOR GRANDE*/ }

@media screen and (max-width: 1024px) { /*customizações MONITOR MÉDIO */}

@media screen and (max-width: 700px) { /*customizações TABLET */}

@media screen and (max-width: 1024px) { /*customizações MOBILE */}

Page 115: API's do HTML5 - Davidson Alencar - WebBR2013

Sites Recomendados:

Page 116: API's do HTML5 - Davidson Alencar - WebBR2013

HTML5gallery.com.br

Sites Recomendados

Page 117: API's do HTML5 - Davidson Alencar - WebBR2013

Sites Recomendados

Page 118: API's do HTML5 - Davidson Alencar - WebBR2013

WebPlatform.org

Sites Recomendados

Page 119: API's do HTML5 - Davidson Alencar - WebBR2013

(21) 2557.3810iLearn Treinamentoswww.iLearn.com.br

[email protected]

Publique seus site de HTML5 em

www.HTLM5Gallery.com.br

Venha fazer convênio com o iLearn e treine seus funcionários

Obrigado!

Page 120: API's do HTML5 - Davidson Alencar - WebBR2013

Davidson [email protected]

@davidsonalencarIn/davidsonalencar

Código fonte dos exemplos: http://github.com/davidsonalencar/webbr2013

Venha fazer convênio com o iLearn e treine seus funcionários

Obrigado!