Tableless - Desenvolvimento inteligente com Padrões Web

20/01/2010
Browsers

Versionamento inteligente para mobiles

Filtrar mobiles pelo tipo de aparelho é muito comum. A moda é versionar o site para iPhone. Mas há outros aparelhos com a mesma capacidade de renderização que podem se beneficiar.

Por


O iPhone fez a festa dele. Todo mundo gostou do que viu e usou. Acontece que não só de iPhone vive o homem, e há pessoas por aí que não gostam do aparelho por motivos diversos. Há mercado para todos e por isso é natural que apareçam outros aparelhos com novos sistemas. Acontece que o lançamento do iPhone criou uma moda de criar versões dos sites específicas para ele. No começo isso foi ótimo. Mas agora, isso priva diversos celulares similares ao iPhone de terem uma boa experiência de navegação. É o caso de usuários de Android.

O Android é o novo sistema operacional para mobiles do Google. Até para um AppleBoy, como eu, o sistema é interessante. Tem a interface bem acabada, app’s amigáveis e etc. Ele faz muito bem o papel dele. O Engine de renderização do browser dele é WebKit. O mesmo engine que o Safari Mobile utiliza. E não estou falando de versões antigas do Webkit como alguns outros celulares utilizam. O Android utiliza as versões mais atuais do Webkit, com suporte extenso a CSS e HTML. Portanto, um site que teoricamente foi feito apenas para iPhone, pode ser visualizado da mesma maneira pelos usuários de Android.

Aí entra outra questão: provavelmente você deve ter pensado que seria apenas fazer um script de detecção de browser, capturando as visitas de Safari Mobile e Android e pronto. É aí que você se engana. Já há vários outros aparelhos que estão utilizando engines parecidas e que podem renderizar sua “versão de iphone”. Exatamente por isso, que você precisa fazer um filtro por características e não por browser. Fazemos isso utilizando Media Queries.

As Media Queries permitem fazer um pequeno filtro, onde definimos as características do dispositivo que acessará a página. Com isso, podemos definir um CSS específico para aquele grupo de dispositivos que se encaixaram no seu filtro. Veja um exemplo abaixo:



A media que fiz é muito simples de ser entendida. A primeira linha engloba dispositivos que tem tela colorida, com uma resolução de largura mínima de 481px, isso inclui seu monitor, notebook e etc. A outra linha engloba dispositivos com uma largura máxima de 480px, ou seja, iPhones, Androids e dispositivos que seguem esse mesmo esquema de resolução e etc.

Dessa forma, você filtra os dispositivos e não os browsers dos aparelhos. Isso previne que algum celular, tão bom quanto o iPhone e o Android fiquem de fora de ter uma boa experiência de uso. Quer fazer um teste interessante? Se você estiver utilizando um browser que aceita media queries, redimensione a janela para uma largura menor que 480px. Você verá o Tableless chaveando os estilos automaticamente. Perceba que alguns elementos são reformatados e outros retirados do layout.

O filtro ainda não está completo porque não estamos contemplando os aparelhos que não aceitam meda queries, mas são mobiles. Para isso, usaríamos os Media Types, com valor de handheld. Embora celulares que aceitem os Media Types não tenham um bom suporte de CSS, podemos fazer pelo menos uma formatação de texto, cor e background. Celulares que utilizam Opera Mini, terão uma ótima experiência.

É sempre aquela mesma velha idéia: dar a melhor experiência para todos os meios de acesso. Sempre.

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • Ariê

    Esse post foi show em!

    Legal entrar mais neste assunto com mais tutoriais e dicas.

    Abraços

  • http://blog.nandorossetto.com/ Fernando Rossetto

    Concordo com o Ariê… seria bacana um post mais prático sobre o assunto, mas, de qualquer forma é sempre bom saber!

  • camilo

    gostei da proposta. realmente os desenvolvedores estão se focando muito no Iphone e estão deixando de lado os outros aparelhos fantásticos que já estão no mercado. Acho que seria interessante como você mesmo disse, usarmos uma terceira linha com “media-type=’handheld’” com estilo especifico. acho que dessa forma engloba todo mundo.

    Engraçado como deixamos de lado os estilos handheld, pois tanta gente já está usando internet nos celulares e smartphones. É tão rápido desenvolver para eles, não chega a 2% do projeto. Deveriamos nos dedicar mais a essa mídia que está bombando.
    Só não bomba mais porque não damos atenção!

    abraços

  • http://javiani.wordpress.com Eduardo Ottaviani

    Muito interessante o post.

    Eu acho uma boa também um post prático sobre o assunto.. é o tipo de assunto que não se vê com tanta frequência.

    Faço parte de 0,001% da parcela da população que não tem o menor interesse em iPhone. =/

    Abraço.

  • Ariê

    Diego seria legal até para começar, dar um exemplo correto de redirecionamento de sites para versão mobile como o g1.

    Acho legal este assunto e vi algumas formas de fazer mas não sei qual a mais correta.

  • http://www.box-banheiro.com Box para Banheiro

    Concordo com você Ariê, é disso que precisamos, mais praticidade.

    Catia

  • http://www.magnumweb.com.br/ Fernando Marquardt

    É só aqui ou esse método não funciona no IE? (7 e 8)

    Pelo menos aqui o site do tableless.com.br fica sem estilo algum acessando pelo IE.

  • Marcio Toledo

    Também existem alguns serviços de versionamento, como o MobifyMe, que prometem viabilizar o acesso mobile sem que sejam necessários navegadores que suportam media queries.

    Gostei muito desses posts sobre o tema, gostaria de ver mais.

  • http://twitter.com/diegoeis/ Diego Eis

    O IE não entende coisas novas e úteis. Normalmente, temos que fazer sites com código obsoleto e burro para que funcionem minimamente no IE.

    Sugiro que você utilize browsers mais inteligentes e modernos como Firefox, Chrome ou Safari.

  • http://www.magnumweb.com.br/ Fernando Marquardt

    @Diego Eis

    Então, eu uso o Chrome para navegar, conheço as incapacidades do IE.

    Só achei estranho o site do Tableless ficar sem estilo no IE (mostrando que a solução infelizmente não funciona no IE).

    Sei que a solução para o problema é bem simples, mas isso não vêm ao caso.

    Apesar disso gostei muito dessa solução, que com certeza pode trazer outras alternativas além da “detecção” de mobiles.

  • http://www.tudopodre.com.br Psysapiens

    Estou adorando essas abordagens sobre desenvolvimento para mobile.
    Reforço a opinião do Ariê.

    []‘s

  • http://www.aclux.com.br Raphael Santo

    Descobri o blog hoje por acaso e não parei mais deler, tem tanta coisa boa… estou apaixonado por esse blog, parabéns o post foi show!!!

  • Pingback: Peneira: Alguém precisa de uma carreira? | Wilson Santos

  • http://www.indexvirtual.com Samuel Batista

    Realmente interessante!

    Mas em casos como o Motorola Droid onde a resolução de tela é 480×854?

  • Robson

    Galera pra que serve chamar um css assim,

    Já vi isso em alguns lugares mas nunca achei informações sobre isso.

  • Robson

    Desculpa não foi o código,
    style.css?variavel=valor. Isso serve para algum tipo de versionamento. já vi isso em varios protetos, mas nunca achei informações a respeito.

    Ex: style.css?version=103