Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

37
O papel do "devigner" e as novidades do HTML5

description

Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Transcript of Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Page 1: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O papel do "devigner" e as novidades do

HTML5

Page 2: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O novo profissional de Interfaces

Page 3: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O Surgimento da Web

• A web surgiu na década de 80 em um centro de pesquisa científica (CERN)

• Características:› Documentos em formato hipertexto› Arquitetura cliente-servidor› Browser como ferramenta cliente› Protocolo de comunicação (HTTP)› Linguagem de formatação de documentos (HTML)› Localizador universal (URL)

Page 4: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Aplicações na Web

• A web nasceu para oferecer conteúdo estático.

• Entretando, o servidor web foi adaptado para permitir alterar/gerar conteúdo, em tempo real, antes de enviá-lo para o usuário.

CGI

Page 5: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Ajax

• Em 2005 a Web vivenciou a revolução do Ajax› Aplicações Web podem obter dados do servidor

assincronamente, sem interferir no conteúdo que está sendo exibido para o usuário.

• A partir de um conceito simples, um universo de novas oportunidades surgiram.

Page 6: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O Desktop foi para a Web

Page 7: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O novo profissional

• O desenvolvedor de interfaces ganha novas atribuições.

• O profissional passa de apenas um “montador” de HTML, para um desenvolvedor altamente capacitado.

• Tecnologias de interface não param de evoluir:› HTML› CSS› Java Script› Flash / Flex / ActionScript› Silverlight › Frameworks Javascript (jQuery, extJS, prototype, YUI etc)› Padrões web, SEO, Semântica, Acessibilidade,

Mobilidade...

Page 8: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

HTML 5

Page 9: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O que as aplicações usam hoje?

• Plugins supriram algumas necessidades: › Video› Animação› Webcam / Microfone› Melhores upload de arquivos› Geolocalização› Armazenamento offline› 3D› Audio› Drag and Drop de arquivos

Page 10: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O novo HTML

• Web Hypertext Application Technology Working Group (WHATWG)› Fundado por Apple, Mozilla Foundation, Opera Software› Liderado por Ian Hickson (atual Google)

• O objetivo do HTML5 é:› Expandir os recursos do HTML e XHTML› Definir as APIs que formam a base da arquitetura Web› Formalizar a especificação de APIs antigas e não

documentadas› Tornar elementos obsoletos (font, center, s, big etc)

• Em 2007, o W3C adotou a especificação criada, como ponto de partida para o HTML5

Page 11: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O que há de novo?

• Novos elementos com valor semântico› section, nav, footer, header, aside, details...

• Novos componentes de formulário› tel, search, url, email, datetime, range, number, color...

• Elemento Canvas• Extensões na API DOM• Video e Audio• Drag and Drop de arquivos• Geolocalização• Gerenciamento de histórico• Armazenamento Offline (Web Storage)• Cache• Threads (Web Worker)• Web Sockets

Page 12: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Já posso usar HTML 5?

• O padrão ainda está no status de “Working Draft”

• Novas versões dos browsers já implementam boa parte da especificação: Firefox 3.5, Opera 10, Safari 5, Chrome 5, IE9› No momento que for finalizada, a especificação já estará

totalmente implementada e utilizável.

• É possível detectar existência da funcionalidade;

• Algumas aplicações oferecem recursos avançados apenas quando há compatibilidade:› Ex: drag and drop de arquivos no Gmail

Page 13: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Canvas

A estrela do HTML 5

Page 14: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O elemento <canvas>

• Grandes estrela do HTML 5

• Uma das primeiras funcionalidades implementada pelos browsers.

• Provê uma área onde é possível criar elementos gráficos › 2D › 3D (WebGL)

• Permite a manipulação de objetos gráficos através de uma API JavaScript› API de baixo nível› Alta performance› Renderizado como um bitmap

Page 15: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Exemplos: Animações

• Audioburst Animation› http://9elements.com/io/projects/html5/canvas

• Ball Pool› http://mrdoob.com/projects/chromeexperiments/ball_pool/

• Liquid Particles› http://spielzeugz.de/html5/liquid-particles.html

• Interactive Polaroid› http://www.addyosmani.com/resources/canvasphoto/

• Kaleidoscope› http://www.chiptune.com/kaleidoscope/

• Starfield› http://www.chiptune.com/starfield/starfield.html

Page 16: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Exemplos: 3D

• Cloth Simulation› http://www.andrew-hoyer.com/experiments/cloth/

• Graphycalc› http://www.graphycalc.com

• Pre3d› http://deanm.github.com/pre3d/monster.html

Page 17: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Exemplos: Aplicações

• Darkroom› http://mugtug.com/darkroom/

• CanvasMol› http://alteredqualia.com/canvasmol/

• Sketchpad› http://mugtug.com/sketchpad

• Smalltalk App› http://smalltalkapp.com

• RGraph› http://www.rgraph.net/

Page 18: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Exemplos: Jogos

• Chain Reaction› http://www.yvoschaap.com/chainrxn/

• Cubeout› http://alteredqualia.com/cubeout

Page 19: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Primeiros passos

<canvas id=“exemplo” width=“300" height=“300">

Texto exibido caso o navegador não seja compatível com Canvas.

</canvas>

var example = document.getElementById('example');

var context = example.getContext('2d');

context.fillStyle = "rgb(255,0,0)";

context.fillRect(30, 30, 50, 50);

Page 20: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Audio e Video

Page 21: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O novo padrão de audio e video

• Até agora, o Flash era o padrão de video para Web

• HTML 5 propõe:› Entidades simples para reproduzir audio e video› API JS para manipulação› Acesso ao acelerador gráfico em hardware (GPU)

• Ainda não há consenso para o formato a ser adotado:› H.264 (mov, mp4) – Safari, Chrome

• Rápido e eficiente / Proprietário e pago› Ogg (Theora) – Firefox, Opera

• Open source / Inferior e sem suporte em hardware

Page 22: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

<audio>

• autoplay: reproduz o arquivo quando a página carrega.

• controls: exibe os controles de reprodução.

• preload: pré-carrega o arquivo (buffer)

• src: caminho para o arquivo

• loop: o audio é sempre reiniciado quando chega ao final

• <source>: variações de formato do mesmo arquivo

<audio autoplay controls> <source src="file.ogg" /> <source src="file.mp3" /> </audio>

Page 23: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

<video>

• autoplay: reproduz o video quando a página carrega.

• controls: exibe os controles de reprodução.

• autobuffer: pré-carrega o video (buffer)

<video width=‘400’ height=‘300’ controls autobuffer> <source src=‘video1.mp4' type='video/mp4‘ /> <source src=‘video1.ogv' type='video/ogg‘ /></audio>

Page 24: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

<video> API

• Atributos:› duration› volume› currentTime› muted

• Eventos:› progress› ended› Pause

if (video.paused == false) {video.pause();

} else {video.play();

}

Page 25: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Exemplos

• Vimeo› http://vimeo.com/7289439

• Video Destruction› http://craftymind.com/factory/html5video/CanvasVideo.html

• HTML5 video.org› http://www.html5video.org

• Player Sublime Video› http://sublimevideo.net/

Page 26: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Miscelânea

Page 27: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Semântica

• Novas entidas para darem mais entendimento ao conteúdo.

Page 28: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Novos Seletores

• API DOM:

element = document.getElementById('section1');elements = document.getElementsByTagName('div');elements = document.getElementsByClassName(‘p');

• Sintaxe CSS:elements = document.querySelectorAll(‘ul#opcoes li');elements = document.querySelectorAll(‘#content .obs');

elements = document.querySelectorAll(‘div > p');

Page 29: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Armazenamento Local

• Provê uma maneira de armazenar dados no cliente.

• Útil em aplicações que podem rodar offline.

• Duas APIs:› Base de dados (SQL lite database)› Armazenamento estruturado (par chave/valor)

element = document.getElementById('section1');elements = document.getElementsByTagName('div');elements = document.getElementsByClassName(‘p');

Page 30: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Drag and Drop

• Uma nova API de manipulação de arquivos foi criada.

• É possível manipular arquivos provenientes de fora do browser.

• Novas classes:› FileList – Lista de arquivos selecionada do › Blob – Representa dados binários› File – Possui atributos do arquivo (nome, mediatype etc)› FileReader - Permite ler um arquivo

• Novos eventos para capturar as interações de Drag and Drop

Page 31: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Workers

• Aplicações nativas possuem processos e threads.

• Workers permitem criar processamento concorrente.

• Um processamento pesado pode ser colocado em uma thread separada.› A aplicação não fica bloqueada enquanto o cálculo é

realizado.› Util na construção de jogos.› Pode fazer melhor uso de processadores multicore.

Page 32: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Geolocalização

• É possível obter a posição geográfica do usuário.

• A localização pode ser obtida de várias fontes:› GPS› Triangulação de celular› IP Address› WiFi

if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function(pos){ var lat = pos.coords.latitude;

var lng = pos.coords.longitude; });}

Page 33: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Flash

Page 34: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

O futuro do Flash

• O Flash vai morrer?› “Acho que não, não num futuro próximo”

• Vantagens› Multiplataforma e Cross-browser› Actionscript 3 é uma linguagem muito madura.› Acesso a dispositivos (microfone, webcam)› Formato de video consagrado› Facilidade de criar e customizar componentes

• Desvantagens› SEO (Search Engine Optimization)› Incompatibilidade com dispositivos móveis› Tecnologia proprietária

Page 35: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Quando usar Flash?

• O Flash é indicado para criar:› Aplicações, Ferramentas e Jogos

• O Flash não é indicado como ferramenta de conteúdo.› Problemas com SEO e acessibilidade.

• Aplicações Enterprise:› Acesso remoto usando protocolo binário (AMF)› Frameworks MVC : Swiz, Cairngorm, Mate, pureMVC etc

• Benchmarks indicam que o Flash tem performance superior ao Canvas.› http://www.themaninblue.com/writing/perspective/

2010/03/22/

Page 36: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Demonstrações

• Chrome Experiments› http://www.chromeexperiments.com/

• Apple› http://www.apple.com/html5/

• 48 Potential Flash-Killing Demos› http://www.hongkiat.com/blog/48-excellent-html5-demos/

Page 37: Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Paiva - 02/09

Ricardo Paiva

[email protected]

Twitter: @werneckpaiva