104
HTML5, Mobile Web e além Computer on the Beach Março - 2015 Reinaldo Ferraz W3C Brasil

HTML5, Mobile Web e além - Computer on the beach 2015

Embed Size (px)

Citation preview

HTML5, Mobile Web e além

Computer on the Beach

Março - 2015

Reinaldo Ferraz W3C Brasil

Mobile Web

A Web é uma ótima plataforma para

desenvolvimento de software

10 Dicas rápidas para

desenvolvimento web mobile

Um resumo baseado em http://mobilewebbestpractices.com

Saiba quando usar um framework

Não reduza o tamanho do seu site do desktop

Utilize a estratégia de Mobile First

Estruturação do conteúdo é importante

Desenvolva para múltiplas formas de entrada e navegação

Mantenha os formulários simples

Proporcione link para o site completo

Use Feature-detection

Otimize performance

http://browserdiet.com/pt/

Use Emuladores para testes

http://www.mobilexweb.com/emulators

Markup básico e mobile web

23

DOCTYPE

24

Doctype: HTML4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> XHTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

25

<!DOCTYPE html>

Formulários

<SCRIPT LANGUAGE="JavaScript"> var now = new Date(); var month_array = new Array("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"); document.write("<form name=date_list><table bgcolor=silver><tr><td>"); document.write("<select name=month onchange=change_month(this.options.selectedIndex)>"); for(i=0;i<month_array.length;i++) { if (now.getMonth() != i) {document.write ("<option value="+i+">"+month_array[i]);} else {document.write ("<option value="+i+" selected>"+month_array[i]);} } document.write("</select>"); document.write("</td><td>"); document.write ("<select name=year onchange=change_year(this.options[this.options.selectedIndex])>"); for(i=1950;i<3000;i++) { if (now.getYear() != i) {document.write("<option value="+i+">"+i);} else {document.write("<option value="+i+" selected>"+i);} } document.write("</select></td></tr><tr><td colspan=2><center>"); document.write("<table bgcolor=white border=0 cellspacing = 0 cellpading = 0 width=100%><tr bgcolor=gray align=center>"); document.write("<td><font color=silver>S</font></td><td><font color=silver>T</td><td><font color=silver>Q</td><td><font color=silver>Q</td><td><font color=silver>S</td><td ><font color=silver>S</td><td ><font color=silver>D</td>"); document.write("</tr><tr>"); for(j=0;j<6;j++) { for(i=0;i<7;i++) { document.write("<td align=center id=d"+i+"r"+j+"></td>") } document.write("</tr>"); } document.write("</table>"); document.write("</center></from></td></tr></table>"); var show_date = new Date(); function set_cal(show_date) { begin_day = new Date (show_date.getYear(),show_date.getMonth(),1); begin_day_date = begin_day.getDay(); end_day = new Date (show_date.getYear(),show_date.getMonth()+1,1); count_day = (end_day - begin_day)/1000/60/60/24; input_table(begin_day_date,count_day); } set_cal(show_date); function input_table(begin,count) { init(); j=0; if (begin!=0){i=begin-1;}else{i=6} for (c=1;c<count+1;c++) { colum_name = eval("d"+i+"r"+j); if ((now.getDate() == c)&&(show_date.getMonth() == now.getMonth())&&(show_date.getYear() == now.getYear())) {colum_name.style.backgroundColor = "blue";colum_name.style.color = "white";}; colum_name.innerText = c; i++; if (i==7){i=0;j++;} } } function init() { for(j=0;j<6;j++) { for(i=0;i<7;i++) { colum_name = eval("d"+i+"r"+j); colum_name.innerText = "-"; colum_name.style.backgroundColor =""; colum_name.style.color =""; } } } function change_month(sel_month) { show_date = new Date(show_date.getYear(),sel_month,1); set_cal(show_date); } function change_year(sel_year) { sel_year = sel_year.value; show_date = new Date(sel_year,show_date.getMonth(),1); set_cal(show_date); } // End --> </script> <!-- Script Size: 3.64 KB -->

<input type="date">

<input type=“email”> <input type=“url”> <input type=“tel”>

<input type=“text” placeholder=“texto”> <input type=“url” required> <input type=“range”>

<input type=“color”>

Elementos multimídia

@media all and (min-width:500px) { … } @media (min-width:500px) { … }

@media (orientation: portrait)

{ ...}

@media (orientation: landscape)

{ ...}

CSS Sprites

.logo01, .logo02, .logo03 { background-image: url('../images/logos.png'); background-repeat: no-repeat; } .logo01 { height: 100px; weight: 60px; background-position: -5px -5px; } .logo02 { height: 122px; weight: 60px; background-position: -5px -143px; } .logo03 { height: 145px; weight: 60px; background-position: -5px -288px; }

Acessibilidade e Mobile Web

<img src="img-slides/w3clogo.png" alt="Logo do W3C">

<div class="foto" role="img" aria-label="Logo do W3C"></div>

Contraste

CSS:

a:hover

a:focus

JavaScript:

onmouseover="#"

onfocus="#"

onmouseout="#"

onblur="#"

APIs para a Web móvel

Vibration API A especificação tem como objetivo definir uma API que fornece acesso ao mecanismo de vibração do dispositivo. A vibração é uma forma de feedback tátil e que pode ser controlada e manipulada conforme a necessidade. Em setembro de 2014, o status dessa documentação dentro do W3C era “W3C Candidate Recomendation”. http://www.w3.org/TR/2014/CR-vibration-20140909/

Ambient Light Events Define um meio para tratar os eventos que correspondem à detecção de luz por sensores. A documentação aborda o viés técnico e questões interessantes como a preocupação com segurança e considerações sobre privacidade. Também é uma “W3C Candidate Recomendation”. http://www.w3.org/TR/2013/CR-ambient-light-20131001/

HTML Media Capture O documento define uma extensão do HTML que facilita o acesso do usuário ao mecanismo de captura de mídia de um dispositivo, como uma câmera ou um microfone, utilizando simples formulários. Isso pode facilitar muito aquela selfie para uma aplicação de compartilhamento de fotos, por exemplo. É importante não confundir essa API com a especificação Media Capture and Streams, que possibilita uma manipulação mais complexa e refinada do acesso à câmera e microfone do usuário. http://www.w3.org/TR/2014/CR-html-media-capture-20140909/

Battery Status API A especificação de status da bateria define um meio para os desenvolvedores web determinarem programaticamente o estado da bateria do dispositivo que hospeda a aplicação. Sabendo o estado da bateria, os desenvolvedores são capazes de criar conteúdo web e aplicações que são eficientes em termos de energia, levando a uma melhor experiência do usuário. http://www.w3.org/TR/2012/CR-battery-status-20120508/

Geolocation API Velha conhecida dos desenvolvedores, essa documentação define uma API que fornece acesso via script para informações de localização geográfica associada ao dispositivo. A documentação sobre geolocalização é uma Recomendação do W3C desde outubro de 2013. Esse documento é o único da lista que não foi criado pelo Device APIs Working Group, e sim pelo W3C Geolocation Working Group. http://www.w3.org/TR/geolocation-API/

Mobile Web pode ser o novo toca fitas de carro

A Internet das Coisas tem um enorme potencial.

http://share.cisco.com/internet-of-things.html

E estão cada vez mais presentes na nossa vida

Muito além dos sensores

Web das Coisas

A Web das Coisas é essencialmente sobre o papel das tecnologias da Web para facilitar o desenvolvimento de aplicações e

serviços para as coisas e sua representação virtual

http://www.w3.org/community/wot/wiki/Main_Page

Camada de aplicação e serviços

Padronização é a chave da Internet das Coisas

Garantir que os padrões W3C sejam implementados “royalty free”,

incentivando a inovação e a disponibilidade da comunidade de

desenvolvedores Web.

http://www.w3.org/community/wot/wiki/Main_Page

Data Formats Interface

Definitions

Security Privacy

...

http://www.w3.org/community/wot/

http://www.w3.org/WoT/

http://www.w3.org/standards/semanticweb/data

http://www.w3.org/Privacy/

http://www.w3.org/Security/

http://www.w3.org/auto/wg/

http://www.w3.org/community/web-bluetooth/

Alguns exemplos

http://www.harvestgeek.com/

http://www.streetline.com/parking-analytics/

http://www.onfarm.com/

Eternas preocupações

Privacidade

Segurança

As máquinas vão dominar o mundo

Participe da construção da Web dentro do W3C

Tks [email protected] @reinaldoferraz

[email protected] @w3cbrasil Facebook.com/W3CBrasil