Categories
Discussão

Porquê eu não gosto de desenvolver sites usando Flash

Uma vez estava no carro com minha esposa procurando um lugar para jantar (porque o primeiro lugar que fomos estava lotado). Um amigo me recomendou uma pizzaria que é bem popular aqui em São Paulo e decidimos ir para lá, mas primeiro queria ver se eles não estavam com fila de espera também. Quando entrei no site do restaurante para pegar o telefone e ligar… não funcionou porque o site é feito em Flash – que não funciona no iPhone.

Quem me acompanha no Twitter já deve ter percebido há tempos que eu não sou muito fã de Flash, mas quando eu faço os meus “rants” fica parecendo que eu não gosto pura e simplesmente porque sou fã de carteirinha do iPhone.

Se fôssemos discutir esse episódio do ponto de vista do usuário, a primeira coisa que alguém falaria seria “ah, você deveria ter um Android porque ele roda Flash”. Mas eu não quero entrar nesse mérito. Na verdade quero discutir esse problema de outro ponto de vista, o do dono do negócio (o cara que paga para alguém fazer o seu site).

Se você tem um negócio – seja uma pizzaria, um mercado, uma empresa de desenvolvimento de software e por aí vai – você possivelmente vai querer estar na Internet, afinal, alguns dos 67,5 milhões* de Brasileiros que são usuários de Internet podem acabar “esbarrando” no seu site e comprando algum produto ou ao menos conhecendo sua empresa (*dados do Ibope/Nielsen de dezembro de 2009).

Uma pessoa da minha família passou por essa experiência recentemente. Ele contratou uma empresa para desenvolver um site para a sua empresa justamente porque queria ser encontrado na Internet e queria vender seus produtos para mais pessoas. Acontece que a empresa que ele contratou desenvolveu o site em Flash, que obviamente não funciona no iPhone. Mas mais do que isso, o site bloqueia alguns comportamentos padrão do navegador (barra de rolagem e o botão de voltar/avançar), além de não ser indexado nos mecanismos de busca. Obviamente ele não percebeu nada disso por ser leigo no assunto, mas eu fiz uma brincadeira bem rápida procurando por alguns dos produtos da empresa dele em ferramentas de busca e vários sites de concorrentes apareçeram nos resultados, mas o dele não. Não preciso nem dizer que ele ficou decepcionado (e com razão).

Pensando como o dono do negócio, eu diria: “Ora bolas, se eu invisto dinheiro para ter um site, eu quero que ele seja acessível para o maior número de pessoas possível!” E como profissional de Internet, não gosto de desenvolver usando Flash pelos mesmos motivos a não ser que eu não tenha escolha (mas geralmente há uma saída). Para ser um pouco mais claro, meus motivos são os seguintes:

1) Sites em Flash não são indexados direito em mecanismos de busca

A maioria das informações dos sites em Flash ficam dentro de um arquivo compilado que não é lido pelos “crawlers“. Se o conteúdo não pode ser indexado ele dificilmente será encontrado por possíveis usuários/compradores/etc. em ferramentas de busca. Até existem formas de contornar esse problema, mas uma rápida análise em alguns sites em Flash conhecidos me mostraram que em mais de 90% dos casos os desenvolvedores não se preocupam em fazer com que o site seja buscável. Ferramentas de busca hoje em dia são fundamentais para ajudarem os usuários a acharem o que precisam na Internet. O site que não aparece bem em buscas certamente está deixando de ter uma boa quantidade de usuários a mais.

2) Sites em Flash não são acessíveis para pessoas com deficiência

Pessoas com deficiência visual utilizam “screen readers” para navegarem na Internet. A navegação nesses leitores de tela é feita com base nas tags HTML da página. Por exemplo, as tags <h*> ajudam o cego a navegar pelos tópicos principais que a página cita. O alt (da tag <img>) ajuda-o a saber qual o conteúdo das imagens, e por aí vai. Se o site é feito em Flash, nada disso vai funcionar. É possível contornar esses casos (assim como no tópico anterior), mas é trabalhoso e ninguém faz. Dos 20 sites populares que analisei antes de escrever esse post nenhum se preocupou com isso. Se você faz o seu site em HTML, isso tudo já funciona praticamente “de graça”.

É claro que pessoas cegas são uma minoria da população, mas nós temos sorte de não fazer parte dela. Justamente por serem minoria eles acabam muitas vezes sendo excluídos, e como se a cegueira já não fosse sofrimento suficiente eles sofrem ainda mais. É uma questão humana que, pelo menos para mim, conta bastante.

3) Flash atrapalha algumas funções nativas dos navegadores

Sites em Flash muitas vezes atrapalham o funcionamento padrão dos navegadores. Um exemplo clássico é que eles fazem com que o botão de Avançar/Voltar parem de funcionar ou funcionem errado. Esse mesmo problema impede que um usuário consiga gravar nos seus “Favoritos” uma página específica (porque o endereço é o mesmo para o site inteiro, e quando ele acessar vai cair na página principal do site ao invés da página que ele queria). Muitos sites já corrigem isso atualizando as URLs ao longo da navegação, mas vários não funcionam direito. Um outro exemplo pior ainda é quando sites em Flash substituem a barra de rolagem nativa do navegador por uma específica do Flash. Esse sim é um problema terrível, porque até o scroll do mouse para de funcionar. Quer ver como é perturbador? Então veja este site. Por favor, será que dá para me deixar usar o navegador direito?

4) Flash é pesado, especialmente se você está em redes 3G/Edge ou conexões lentas

Tudo bem, os sites em Flash funcionam em Android. Mas o que você acha de ter que esperar um Flash de 2MB carregar para você poder começar a usar o site? E olha que nem estou contando as famosas introduções animadas, das quais vou falar daqui a pouco. As aplicações em Flash ficam gigantescas e lentas, especialmente para quem está acessando de dispositivos móveis ou de conexões mais lentas.

5) Muitos designers de sites em Flash esquecem da usabilidade

Veja este site. Eu que não sou nenhum especialista em UX sei há anos que rolagem horizontal é abominável. Neste exemplo eles anda fizeram com que o trackpad do meu notebook não funcione corretamente, proporcionando assim a maneira mais lenta e tediosa possível de rolar para achar a informação que eu preciso. Agora veja este outro site. Fiz um teste rápido em casa e minha mãe não foi capaz de usá-lo, tem animações demais e objetividade “de menos”. Aposto que muitas outras pessoas também não conseguiriam. Você não constrói sites somente para pessoas que entendem de Internet ou são capazes de “fuçar” e descobrir como funcionam as coisas. A Internet é aberta e todo tipo de gente usará o seu site, por isso é preciso que ele seja tão fácil e direto quanto possível. Não adianta se preocupar somente em fazer sites bonitinhos, eles precisam ser funcionais também.

6) Flash não funciona em todos os dispositivos móveis

Sites em Flash não funcionam em iPhones e iPads, por exemplo. O iPhone – especialmente o 4 – é um fenômeno de vendas. No primeiro dia de venda foram vendidas 300.000 unidades do iPhone 4. No Brasil, várias pessoas foram para a porta da loja à meia noite para poderem ser os primeiros a comprarem o aparelho. Até hoje as lojas das maiores operadoras ainda estão com o aparelho em falta (porque todas as unidades que chegam são vendidas num piscar de olhos). Isso sem contar o iPad, que estima-se que serão vendidas 10 milhões de unidades até o fim de 2010. Ou seja, estamos falando de uma quantidade expressiva de aparelhos. Assim como você se preocupa em desenvolver sites compatíveis com vários navegadores, você precisa se preocupar com dispositivos móveis. Seria muito mais fácil desenvolver para Firefox somente, mas infelizmente há um grande número de usuários que usam Internet Explorer (incluindo IE6, infelizmente) e você não pode deixar de levar isso em consideração, senão eles não conseguirão usar seu produto. O mesmo vale para iPhone – seria muito mais fácil se você não precisasse se preocupar com ele, mas um grande número de pessoas estão usando e você não vai querer deixar essas pessoas de fora do seu site. Se você realmente precisar usar Flash, preocupe-se em ao menos desenvolver uma versão compatível com outros dispositivos (como fizemos na época que eu trabalhava na Globo.com, por exemplo).

7) Introduções em Flash são pouco úteis

Qual é o objetivo funcional de uma introdução em Flash em um site? Pense. Não há nenhum! Sites em Flash muitas vezes tem aquelas introduções gigantes e tediosas que são uma maneira super eficiente de impedir os usuários de fazerem o que eles precisam. Pode ser que isso tenha sido legal há alguns anos quando era novidade, mas isso já passou há muito tempo.

Concluindo…

Como falei no início, minha análise é do ponto de vista dos nossos clientes, ou seja, das pessoas que nos pagam para fazermos bons projetos de websites. Tenho certeza que você que é profissional de Internet como eu não quer fazer projetos ruins (ou não tão bons quanto poderiam ser).

Existem um monte de ferramentas que te permitem criar sites funcionais, rápidos, acessíveis e eficientes. Mais recentemente com o HTML5, muitas das coisas que antes só eram possíveis com Flash (ou Silverlight) agora são nativas dos navegadores.

Da próxima vez que você for usar Flash, pense duas vezes. E se não tiver jeito e você for usar mesmo, por favor faça direito. 🙂

Categories
Notícias

Novo release do Globo Vídeos (agora em tela cheia)

São 05:55 da manhã por aqui e acabamos de subir o primeiro release do Globo Vídeos de 2008. Essa versão é a primeira depois da mudança para Flash vídeo e nós corrigimos diversos detalhes de infraestrutura que ficaram pendentes em 2007. Fizemos bastante coisa, mas não vai dar para ver muita novidade.

Mesmo que esse release tenha sido praticamente só de coisas “internas”, não tivemos como deixar de fora uma das funcionalidades mais requisitadas: os vídeos em tela cheia! Muitos usuários sentiram falta dessa funcionalidade e cheguei até a receber aqui no blog comentários como: “a decisão de tirar a tela cheia merece o prêmio abacaxi da década”.

Acho que isso tudo merece uma explicação.

Tivemos que fazer isso porque estávamos correndo contra o tempo para colocar a infraestrutura de Flash vídeo antes do Big Brother. O BBB é um grande evento para os nossos servidores, eles trabalham um bocado nessa época. O consumo de vídeos aumenta muito e por isso é muito arriscado fazer qualquer mudança grande na infraestrutura neste período, porque se alguma coisa der errado, nossos usuários podem ficar sem ver vídeos (e nós definitivamente não queremos isso).

Como a mudança de Windows Media para Flash envolvia uma quantidade enorme de mudanças, só tínhamos duas opções: ou fazíamos a migração para Flash antes do BBB, ou esperávamos para fazer em abril de 2008, depois que o programa acabasse.

Só o trabalho de infra foi monstruosamente grande… Desde a captura de vídeos com mais qualidade, até a produção em um novo formato (flv) e distribuição dos vídeos usando dezenas servidores totalmente novos com softwares completamente diferentes dos anteriores. Como se isso tudo já não fosse suficiente, precisavamos mudar o player do Globo Vídeos e o player embedded que é usado por inúmeros sites da Globo.com, mantendo compatibilidade com alguns programas que ainda funcionam em Windows Media como os jogos da NBA, por exemplo.

Com tantas coisas pra fazer pela frente, nós tivemos que priorizar a implementação de tudo que era absolutamente necessário para o funcionamento dos novos vídeos em Flash. A tela cheia é uma funcionalidade importante? Sim, ela é muito importante. Só que mais importante que isso é tocar o vídeo. Para viabilizar o projeto, tivemos que tirar absolutamente todas as funcionalidades que não fossem impeditivas para o funcionamento dos novos vídeos. A princípio isso pode parecer ruim, mas nossas práticas com Scrum nos mostraram claramente que essa era a única forma de fazermos o player Flash acontecer.

Posso dizer que essa decisão não foi nem um pouco fácil, porque acabamos tirando uma funcionalidade dos usuários. Mas pode ter certeza que foi uma das coisas que viabilizou a migração dos vídeos para Flash ainda em 2007.

Ficamos sem a tela cheia por pouco mais do que 40 dias. Não foi muito tempo, mas sei que muita gente ficou chateada. Peço desculpas em nome da Globo.com, mas como vocês estão vendo, foi por uma boa causa. 🙂

Categories
Notícias

Globo Vídeos em Flash!

Globo Vídeos Flash PlayerNem acredito que finalmente o Globo Vídeos mudou para Flash! Desde às 05:53 da manhã de hoje toda a nova infraestrutura de Flash Vídeo da Globo.com está em produção e funcionando muito bem, obrigado. Com isso nós nos igualamos aos maiores players do mercado como YouTube, Yahoo! Video, Metacafe e blip.tv.

Muitas pessoas sempre me perguntavam porque a Globo.com usava Windows Media ao invés de Flash. Não posso entrar nos detalhes dessa decisão mas só para deixar as coisas mais claras, não era uma decisão técnica e sim de negócio. Como usuário do Globo Vídeos eu também sempre estive muito ansioso para que os vídeos fossem em Flash mas infelizmente não era possível. Agora, com todas as arestas aparadas, finalmente estamos disponibilizando vídeos numa tecnologia mais moderna e com muito mais qualidade de imagem do que a versão anterior (e vai melhorar!). Além disso agora passamos a atender também os usuários de Linux e Mac.

O mais legal dessa história toda é que todo o projeto foi implementado em menos de um mês! Esta primeira fase do projeto durou exatamente 4 semanas, desde estudar Flash até a migração de toda a infraestrutura, re-programação do site, produção de vídeos no novo formato, confecção do player e etc. Utilizar um processo de desenvolvimento ágil como Scrum foi essencial para organizar/planejar o trabalho e também possibilitou essa façanha de fazer uma quantidade de trabalho considerável em 4 semanas.

2008 promete. Muitas novidades virão por aí!

Categories
AJAX

AJAX Compilation

Ajax Compilation é uma compilação de referências para diversas APIs e bibliotecas AJAX que você pode usar em seus sites para torná-los mais interativos.

Basicamente o dono do site teve o trabalho de catar para nós um monte de sites legais na internet e criar um catálogo deles, colocando um link para o site da ferramenta e para o demo online (quando é oferecido pelo site da ferramenta).

Nem tudo catalogado lá é AJAX, algumas coisas são em Flash e outras são em puro Javascript mesmo. Mas o que importa é que tem um monte de coisinhas legais e vale apena dar uma olhada. Recomendado para o cinto de utilidades dos desenvolvedores web. 😉