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:
1 2 | <link rel="stylesheet" href="style.css" type="text/css" media="screen and (min-width:481px)"> <link rel="stylesheet" href="mob.css" type="text/css" media="screen and (max-width:480px)"> |
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.
16 Comentários
16 Comentários
Ariê 20/01/2010 às 11:26
Esse post foi show em!
Legal entrar mais neste assunto com mais tutoriais e dicas.
Abraços
Fernando Rossetto 20/01/2010 às 14:38
Concordo com o Ariê… seria bacana um post mais prático sobre o assunto, mas, de qualquer forma é sempre bom saber!
camilo 23/01/2010 às 18:40
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
Eduardo Ottaviani 24/01/2010 às 19:05
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ê 26/01/2010 às 09:38
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.
Box para Banheiro 27/01/2010 às 08:21
Concordo com você Ariê, é disso que precisamos, mais praticidade.
Catia
Fernando Marquardt 28/01/2010 às 13:47
É só aqui ou esse método não funciona no IE? (7 e
Pelo menos aqui o site do tableless.com.br fica sem estilo algum acessando pelo IE.
Marcio Toledo 29/01/2010 às 00:44
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.
Diego Eis 29/01/2010 às 08:38
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.
Fernando Marquardt 01/02/2010 às 08:38
@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.
Psysapiens 02/02/2010 às 16:14
Estou adorando essas abordagens sobre desenvolvimento para mobile.
Reforço a opinião do Ariê.
[]‘s
Raphael Santo 09/02/2010 às 10:53
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!!!
Peneira: Alguém precisa de uma carreira? | Wilson Santos 28/02/2010 às 09:38
[...] Versionamento Inteligente – Algumas dicas do Tableless para modificar o site para outros dispositivos móveis além do Iphone. [...]
Samuel Batista 15/03/2010 às 16:50
Realmente interessante!
Mas em casos como o Motorola Droid onde a resolução de tela é 480×854?
Robson 22/07/2010 às 11:17
Galera pra que serve chamar um css assim,
Já vi isso em alguns lugares mas nunca achei informações sobre isso.
Robson 22/07/2010 às 11:20
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