O papel do "devigner" e as novidades do HTML5
Transcrição
O papel do "devigner" e as novidades do HTML5
O papel do "devigner" e as novidades do HTML5 O novo profissional de Interfaces 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) 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 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. O Desktop foi para a Web 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... HTML 5 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 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 O que há de novo? • Novos elementos com valor semântico • Novos componentes de formulário • • • • • • • • • • 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 › section, nav, footer, header, aside, details... › tel, search, url, email, datetime, range, number, color... 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 Canvas A estrela do HTML 5 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 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 Exemplos: 3D • Cloth Simulation › http://www.andrew-hoyer.com/experiments/cloth/ • Graphycalc › http://www.graphycalc.com • Pre3d › http://deanm.github.com/pre3d/monster.html 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/ Exemplos: Jogos • Chain Reaction › http://www.yvoschaap.com/chainrxn/ • Cubeout › http://alteredqualia.com/cubeout 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); Audio e Video 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 <audio> <audio autoplay controls> <source src="file.ogg" /> <source src="file.mp3" /> </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 <video> <video width=‘400’ height=‘300’ controls autobuffer> <source src=‘video1.mp4' type='video/mp4‘ /> <source src=‘video1.ogv' type='video/ogg‘ /> </audio> • autoplay: reproduz o video quando a página carrega. • controls: exibe os controles de reprodução. • autobuffer: pré-carrega o video (buffer) <video> API if (video.paused == false) { video.pause(); } else { video.play(); } • Atributos: › › › › duration volume currentTime muted • Eventos: › progress › ended › Pause 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/ Miscelânea Semântica • Novas entidas para darem mais entendimento ao conteúdo. 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'); 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'); 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 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. 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; }); } Flash 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 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/2 2/ 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/ Ricardo Paiva [email protected] Twitter: @werneckpaiva