Ex-engenheiro do Google explica por que a interface do Android nunca será tão suave como a do iPhone e WP7

#Notícia Publicado por mario juniorjp, em .

IMAGEaHR0cDovL2Zhc3RjYWNoZS5nYXdrZXJhc3NldHMuY29tL2Fzc2V0cy9pbWFnZXMvNC8yMDExLzA4L2FuZHJvaWQtY29tcHJlc3NlZDIuanBn

Antigo engenheiro do Google explica por que a interface de usuário Android nunca será tão suave como a do iPhone e Windows Phone 7.

Este é o tipo de notícia que faz com que os fanboys do Android puxem seus cabelos, especialmente porque não há um fanboy do iPhone ou um fanboy do Windows Phone, mas sim um engenheiro de software que até recentemente trabalhou para o Google diretamente com o Android.

No entanto, meu objetivo não é deixar qualquer um ficar louco, ou desapontado, e eu recomendo que os fãs extremistas e aqueles que são incapazes de assimilar as informações em um alvo óbvio, deixem de ler esta nota e leia qualquer outra.

Uma coisa que realmente se destaca em um iPhone é a suavidade que se sente em relação ao uso do Android. O sistema operacional Android é preguiçoso, lento, com um intervalo mensurável entre o tempo você toca na tela e o tempo que o sistema operacional responde, o IOS responde instantaneamente. Tão rápido que quase parece antecipar o que você quer fazer antes de seus dedos tocarem na tela.

Como é que a Apple faz isso? Embora a melhor pergunta fosse: Como é que o Google faz? De acordo com Andrew Munn, um estudante de engenharia de software e ex-estagiário do Google, "O Android é tão mal programado que o Google nunca seria capaz de igualar o desempenho de um iPhone ou iPad."

Antes de começar a negar, negar e negar, vamos dar mais uma olhada em algumas coisas interessantes. Anteriormente foi dito que a interface do usuário Android é lenta em comparação com IOS, porque os elementos da interface do usuário não usam aceleração de hardware para o Android 3.0 Honeycomb. Em outras palavras, cada vez que você passa a tela de um telefone Android, o processador precisa desenhar cada pixel de novo, e isso não é algo em que as CPUs sejam muito boas.

Esse argumento faz muito sentido, exceto por um detalhe: não é certo. Se tivesse sido, o delay medido na resposta ao toque da interface do usuário Android teria desaparecido com o lançamento do Android 3.0. E a realidade é que os dispositivos Android ainda continuam tendo lag, mesmo depois de instalar o Android Honeycomb.

Google como um mágico da publicidade e marketing, e os fabricantes de aparelhos Android tem escondido, disfarçado o problema de uma forma bem criativa. Como? Aumentando o poder de seus telefones, tanto quanto possível e tanto quanto o puder esconder a sua fraqueza.

Por esta razão é normal que a maioria dos telefones modernos com Android tenham especificações que em muitos casos são melhores do que o iPhone. Por exemplo, a maioria dos telefones Android tem 1GB de RAM e processadores dual core 1.5GHz e até quatro núcleos, em comparação com o iPhone 4S, que tem processador dual-core de 1GHz e 512MB de memoria, no entanto, a interface do iPhone e do iPad é muito mais suave, mostrando que o problema não é hardware. Então, qual é o problema?

A razão pela qual o Android não pode fazer com que a interface com o usuário seja ágil, e opere sem atrasos, de acordo com Andrew Munn é que no iOS, os processos de representação da IU se produzem com threads dedicados com prioridade em tempo real, parando os outros processos e focando toda a atenção sobre a representação da interface do usuário. Em outras palavras, cada vez que seu dedo toca a tela do seu iPhone, o sistema operacional literalmente enlouquece: "Alguém está tocando! Alguém toca! E para tudo o que você está fazendo e se concentra em que alguém esta tocando a tela. No Android, no entanto, os processos de representação da interface com o usuário ocorrem junto com a thread principal com prioridade normal. Em outras palavras, a representação da interface do usuário é o mesmo que você faria, por exemplo, se você baixasse um podcast no fundo, fizesse a leitura de mensagens SMS ou qualquer outra coisa. Portanto, a interface do usuário está agitado.

Munn explica isso explicitamente e ao mesmo tempo, torna claro o porque do Google ser tão estúpido o suficiente para projetar o Android desta forma.

A interface do usuário Android nunca será totalmente suave devido ás limitações de design que abordei no início:

- A representação da interface do usuário é produzida no thread principal de um aplicativo.

- A representação da interface do usuário tem prioridade normal.

Mesmo com um Galaxy Nexus, ou o processador Quad-Core do Asus Eee Pad Transformer, não há nenhuma maneira de garantir uma suave taxa de quadros se essas duas restrições de design continuarem a ser válidas. Ou seja, precisamos do poder de um Galaxy Nexus se aproximando a suavidade de um iPhone 3G com mais de três anos. Então, por que a equipe de design do Android tem projetado a framework dessa forma? Os trabalhos no Android começaram antes do lançamento do iPhone, e foi, então, sendo projetado para ser um concorrente para o Blackberry. O protótipo original do Android não era um dispositivo touchscreen. A representação do Android com compensação fez sentido para um dispositivo com um teclado e um trackball. Quando o iPhone saiu, a equipe do Android apressaram-se para lançar um produto para competir com ele, mas infelizmente já era tarde demais para reescrever a estrutura da interface do usuário.

Mas surge outra pergunta: Por que o Google não alterou a estrutura de interface do usuário Android? Bem, a resposta é simples. É uma tarefa difícil que requer cada aplicação no Android Market seja reescrito para suportar o novo quadro, que levaria pelo menos um ano, e a lógica diz que provavelmente nunca vai acontecer.

Em outras palavras, para que o Google remova o problema de atraso no Android, basicamente tem que destruir o seu ecossistema de aplicativos inteiro. O iOS, por outro lado, foi construído da raiz para suportar dispositivos multitouch, demonstrando como a Apple foi visionária e deu importância a fazer as coisas direito.

Texto Revisado por mim, com ajuda do Bing Tradutor.

Mario
Mario #mario juniorjp