Android Pixel Perfect: Como criar um Jogo da Velha em Android

Veja nesse artigo boas práticas e paradigmas das interfaces de diversos dispositivos. Desenvolveremos um jogo da velha e durante o processo serão identificados quais são as opções e que tipos de abordagens podem ser implementadas.

Fique por dentro
Para a implementação de telas na plataforma Android, antes de começar a fazer drag-and-drop no editor da sua IDE favorita, é importantíssimo saber de antemão como e o que será feito. Dicas sobre planejamento e estratégia para serem executados antes de iniciar o desenvolvimento poderão salvar um tempo precioso. O aumento da qualidade é perceptível quando uma tela é planejada antes do desenvolvimento. Saber trabalhar com as dimensões corretas e de forma produtiva também são desejo comum de todos interessados. Outro ponto discutido é o de como identificar os possíveis comportamentos entre as diferentes possíveis telas que seu aplicativo deverá se encaixar e como fazer isso da melhor forma utilizando as estruturas disponíveis na plataforma Android.

Fazer com que a tela fique Pixel Perfect é um termo bastante utilizado para o momento em que os ajustes finos de interface serão feitos para aderir ao desenho original da forma mais detalhista e perfeita possível. O desenho é uma atividade muito importante e que deve ser executada em uma fase prévia ao desenvolvimento da tela, uma vez que o desenho estático é mais simples e rápido de ser executado em comparação à implementação completa de uma tela. Com várias visões prévias e testes visuais, as chances de sucesso aumentam consideravelmente.

Ao desenhar telas estáticas, ainda na fase de concepção, é crucial o executor dos desenhos dominar as boas práticas e os Guidelines do Google e fazer com que o objetivo de cada tela seja o mais claro e fácil possível ao usuário.

Cada tela, no momento da concepção, deve ser cuidadosamente pensada para que se encaixe bem nos devices aos quais a app se destina ou, em um cenário mais aberto possível, fazer com que cada tela se adeque da melhor forma possível às quase 10mil diferentes combinações de telas dos devices Android existentes no mercado. Para facilitar na escolha de qual será a abrangência da sua App, é interessante consultar o dashboard do Google que contém a participação de cada versão de software e também fabricantes dos dispositivos Android.

A imensa variedade de devices Android pode ser dividida e subdividida de acordo com suas características. No escopo deste artigo serão abordados os seguintes: dimensão da tela, densidade da tela e orientação.

Dimensão da tela é a que diz respeito ao tamanho da tela propriamente dito. No setor de comercialização de dispositivos, a unidade mais comumente utilizada são as polegadas. No ramo que circunda os desenvolvedores, dificilmente durante a implementação serão utilizadas medidas em polegadas, mas sim medidas em pixels, como na maior parte das plataformas de desenvolvimento e no Android especificamente, poderemos verificar o uso do DP ou DIP. É na característica de dimensão que conseguimos classificar as telas dos diferentes dispositivos Android em algumas classes de tamanho de tela: SMALL, NORMAL, LARGE, XLARGE.

A característica na qual podemos apontar a maior e mais comum falha ao lidar com layouts e dispositivos Android é a densidade das telas. A frase "Este device possui uma tela grande, deve ser XHDPI" não é difícil de se ouvir pelos corredores de empresas de garagem até as grandes corporações internacionais. Para eliminar este tipo de associação, caso ela ainda exista, é simples: densidade é a quantidade de pontos em uma determinada área. A medida mais comumente utilizada no mundo da computação é o DPI (Dots per inch – Pontos por polegada). No Android também utiliza-se a medida DPI para o cálculo das densidades. As densidades atualmente reconhecidas no Android são: LDPI, MDPI, HDPI, XHDPI, XXHDPI e XXXHDPI, em ordem crescente de densidade. Uma tela XHDPI não é, necessariamente maior que uma tela MDPI, e na recíproca também podemos afirmar que uma tela LDPI não é necessariamente menor que uma tela XXXHDPI.

A orientação representa como o dispositivo está sendo segurado pelo usuário. As orientações possíveis são Portrait (retrato) ou Landscape (Paisagem). Normalmente nos devices Android, a Portrait possui a dimensão altura maior que largura e no modo Landscape é o inverso. A orientação é outra característica que aflige os desenvolvedores, mais pelo comportamento acerca do ciclo de vida das Activities do que pelo ajuste de layout em si, o que resulta em apps "travadas" em uma das orientações, o que é totalmente contra os Guidelines do Google. Nos guidelines, o usuário deve poder utilizar o device na orientação que for mais conveniente, portanto, o aplicativo desenvolvido deve preservar a melhor usabilidade possível em qualquer que seja a orientação que o dispositivo esteja.

O Android foi concebido para conseguir lidar com as mais diversas dimensões, densidades e orientações de telas. Por isso, uma camada de abstração nas dimensões foi utilizada: DIP. DIP é uma sigla para Dimension-Independent Pixel (Dimensão independente de pixel). Este tipo de abstração se faz necessário para fazer com que, mesmo em devices com uma diferença muito grande em pixels e resolução, o formato da tela de uma mesma app seja muito semelhante.

Ao desenvolver interfaces Android, pode-se utilizar diversas estruturas, cada uma com um comportamento, que gera um resultado final diferente. Dentre as possíveis, estão formas que são baseadas em posição absoluta: AbsoluteLayout, até layouts onde a disposição desses elementos é feita de forma relativa: RelativeLayout. Para cada um dos layouts um comportamento diferenciado é esperado.

O Android, por sua característica multi-device, está muito próximo das telas que necessitam de um comportamento fluído, assim como telas HTML, e distanciando das plataformas que possuem menor diversidade do tamanho de telas ou que as telas sejam com tamanhos fixos. Dispositivos iOS possuem uma diversidade de formatos e tamanhos de tela muito menor que dos dispositivos Android, vê-se mais estratégias absolutas de layout no iOS que no Android, e isto gera algum trabalho extra no momento de design de aplicativos que serão disponibilizados em ambas plataformas."

[...] continue lendo...

Artigos relacionados