Muitos esperavam ansiosos pelo evento de ontem que lançou o smartphone Google Nexus One (fabricado pela HTC) e a versão 2.1 do sistema operacional Android. Boa parte dos “Google-fans” ficaram um tanto frustrados ao perceberem que o Nexus One e o Android 2.1 não trazem grandes novidades e nem causam uma grande revolução sobre aquilo que já está presente no mercado (vamos ser francos: nada foi prometido a este respeito).

Algo interessante no entanto foi um detalhe levantado por diversos sites especializados a respeito da ausência do multitouch que perpetua neste novo aparelho, o que levou alguns usuários a debaterem sobre o assunto no blog da Bia Kunze, a Garota Sem Fio.

Desde que tive contato com meu primeiro smartphone Android (um HTC MagicDesde que tive  ainda com a ROM WWE sem a interface HTC Sense), esta questão vem também me incomodando e, até certo ponto, me intrigando. Assim, resolvi reunir aqui algumas de minhas ponderações sobre o multitouch no Android para “pôr mais lenha na fogueira”.

Primeiro vamos voltar um pouco no tempo e lembrar de 2008: o iPhone era o maior objeto de desejo dos usuários dos Estados Unidos com um bom hardware, ótimo software e excelente estratégia de marketing que só a Apple sabe fazer. Neste contexto, a Google,  HTC e T-Mobile anunciaram a parceria que resultou no T-Mobile G1 (ou HTC Dream) aquele slider Qwerty esquisitinho com a inclinação de sua base.

O aparelho trazia consigo uma tela touchscreen de 3,2” capacitiva e a primeira versão do sistema operacional Google Android que (importante) não tinha suporte ao multitouch. Ora, introduzir um novo aparelho em um mercado (EUA) já dominado pelo iPhone que tinha um preço agressivo graças ao subsídio dado pela AT&T, não era tarefa fácil – mesmo para outro smartphone associado à marca Google. Neste contexto, montar um smartphone com tela capacitiva sem suporte multitouch não ajudava em nada: afinal, as telas resistivas fariam bem o trabalho, com um custo inferior de produção.

Minhas suspeitas recaem ao fato de que a Google já planejava oferecer o suporte às futuras versões, porém não a teria implementado ainda. Há, é claro, a suspeita de que o Android já ofereça o multitouch nativo, contudo, devemos lembra que se trata de um sistema operacional móvel open source, isto é, que qualquer um consegue ter acesso ao código. Neste sentido, após quase 2 anos de existência, já deveria haver no mercado pelo menos 70% de aparelhos dos mais diversos fabricantes com esta característica. E estendendo este pensamento, sou levado a crer que o Android em si ainda não possui uma API proprietária para o suporte multitouch.

“Ok, mas e quanto ao navegador do Motorola Milestone?” É verdade: no navegador do Motorola Milestone é possível fazer o gesture pinch-to-zoom (o movimento de pinça) para alterar o nível de zoom – assim como em alguns outros poucos aplicativos (guarde bem: aplicativos).

Esta função não é novidade do Milestone: o HTC Hero, que foi lançado cerca de 6 meses antes do Milestone, já trazia a função em seu navegador. E olhe que interessante: a mesma HTC que introduziu a função multitouch no Hero, foi também responsável por apresentar no final do último ano o HTC HD2 – um smartphone Windows Mobile 6.5 com multitouch.

Mas espere aí: o Windows Mobile 6.5 não tem suporte multitouch. Verdade também: a capacidade de usar a pinch to zoom está limitada aos aplicativos Opera 9.7 (navegador) e HTC Album (visualizador de imagens): qualquer outra área do Windows Mobile (mesmo o visualizador de fotos padrão do sistema operacional) não oferece este suporte.

Então temos algo interessante aqui: a HTC conseguiu desenvolver um aplicativo que captura o multitouch mesmo que o Windows Mobile não o comporte. No caso do Opera Mobile, o aplicativo é responsável por converter a gesture em um comando de zoom que já existe no Opera Mobile. Por sinal, a barra padrão de zoom do Opera Mobile no HD2 vem oculta por uma modificação simples no registro do sistema operacional. Tal fato explicaria o multitouch do navegador do HTC Hero e do Milestone, além de outros aplicativos para o Android – isentando o sistema operacional para dispositivos móveis da Google de oferecer o tal suporte.

Se tudo isso fez sentido até agora, a pergunta continua passa a ser: “por que não foi implementado o suporte multitouch nativo no Android?” – e aí está a “million dollar question”…

Se me permitem, lançarei outra hipótese pare responder a esta pergunta.

Sou um entusiasta de UIs (interfaces com o usuário) e uma de minhas atribuições em minha empresa está relacionada com esta área – digo isso, pois vamos mudar um pouco o foco.

Pense nas interfaces existentes no mundo da eletrônica: o “mosaico” da TV por assinatura, os menus de configuração da sua TV, seu notebook/desktop… notaram? Independente de qual a opção, todas as interfaces são centradas a uma filosofia de uso que considera um único ponto de foco (cursor): nos menus, você vai “pulando” entre as opções existentes (entrando uma-a-uma), no seu desktop, o ponteiro também é único (o cursor do mouse).

Assim, toda a lógica de uso dos nossos dispositivos eletrônicos está baseada em princípios comuns que consideram o uso de um único “ponto de contato”. E isso também justifica o “furor” causado pelo iPhone enquanto Steve Jobs mostrava o pinch-to-zoom na foto de um garotinho. Nunca se viu (ao menos publicamente e comercialmente) um gesture tão intuitivo com toques múltiplos para executar uma ação.

Mas deixe-me fazer outra pergunta: fora o pinch-to-zoom (que, como o nome já diz, só é usado para zoom) e a função de seleção de textos (adotada posteriormente somente pela série Blackberry Storm e não tão popular quanto o primeiro) em que outro lugar você utilizaria os gestures em um smartphone?

O pintch-to-zoom foi uma “grande sacada” da Apple por ser extremamente “óbvio” em seu uso – eu apenas me pergunto se este gesture tivesse sido introduzido por um outro aparelho (sem ter toda a repercussão mundial que o iPhone teve) a idéia teria pegado de maneira tão rápida. Isso mudou a percepção do usuário em relação a como se comportar frente o celular touchscreen. Bingo! Aí está a chave da questão: o comportamento do usuário mudou. Mas imagine se tivéssemos uma dúzia de gestures diferentes para aprender ao mesmo tempo? Muitas vezes algo que imaginamos ser prático não o é para a maioria das pessoas.

Basta ver as últimas notícias para saber que o sistema operacional da Google está em franca expansão e, sempre que falamos em um smartphone, o associamos diretamente ao seu OS: o Motorola Droid é um Android, o HD2 um Windows Mobile, o Nokia N97 um Symbian… ao passo de que a dificuldade em sua utilização normalmente está associada ao sistema operacional ou interface com o usuário empregado – e não ao hardware ou à fabricante em si. Por que as pessoas optam pelo HTC Sense ou pelo Samsung TouchWiz ao invés de um Windows Mobile puro?  A interface com o usuário e sua facilidade de uso hoje é responsável por boa parte do processo de venda. E se um fabricante resolver criar 50 gestures diferentes tornando o sistema complicado demais para ser utilizado? (ela pode: o Android é um open source!)

Acho que vocês já entenderam onde quero chegar: será mesmo necessário aplicar o multitouch no Android como um todo? Não é realmente melhor manter a função associada por aplicativo específico e homogenizar o uso do Android? Se algo não funciona bem em uma interface customizada (como uma HTC Sense)… é culpa da HTC Sense… e não do sistema operacional propriamente.

E apenas para concluir um por menor: tanto o Motorola Droid quanto o HTC Hero em sua versão CDMA para a operadora Sprint (ambos só vendidos nos Estados Unidos) não oferecem suporte multitouch (ao contrário de suas versões GSM Motorola Milestone e HTC Hero – no navegador e alguns outros aplicativos). Tal fato parece estar associado unicamente a uma questão de patentes de uso na função multitouch registrada pela Apple nos Estados Unidos.

Logicamente, estas são apenas as minhas opiniões e especulações. E você? O que acha?

Atualização:

Graças à colaboração dos leitores Fábio, Martin Riesel e Gian Salvati, temos uma confirmações e uma explicação mais consistente:

  1. O Android possui suporte multitouch em sua API – apenas não é devidamente implementado (com razões podendo estar associadas a fatores de UI e não de incapacidade do sistema operacional): http://developer.android.com/sdk/android-2.0-highlights.html)http://developer.android.com/sdk/android-2.0-highlights.html
  2. Toda a questão sobre a falta de suporte à funcionalidade nos Estados Unidos, está realmente relacionada a uma questão de patente da Apple. A patente está cadastrada no seguinte link: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=multi-touch&s2=multitouch&OS=multi-touch+AND+multitouch&RS=multi-touch+AND+multitouch

Muito obrigado a todos pelos comentários… e então, caso encerrado?