Por que eu devo ler este artigo:

Este artigo apresenta uma das formas de lidar com um dos maiores desafios no desenvolvimento de sistemas para dispositivos móveis: a portabilidade. Manipular os diferentes tamanhos de interface e orientação dos dispositivos não é nada fácil.

Neste contexto, o artigo apresenta duas soluções, sendo o uso de fragments recomendado quando portabilidade for uma característica importante em sua aplicação. Para testar e demonstrar alguns recursos do Android Fragments será desenvolvido um exemplo clássico de aplicativo Lista – Detalhe, onde é apresentada uma lista de elementos com palavras chaves, e ao clicar sobre este, detalhes são apresentados.

Um dos maiores desafios para os programadores mobile sempre foi a portabilidade visual dos aplicativos. Desde os primórdios do desenvolvimento para a plataforma móvel, onde existiam apenas plataformas de desenvolvimento mais limitadas como Java ME, Symbiam e Brew, um dos grandes desafios era garantir que um programa desenvolvido rodasse bem na maior quantidade de dispositivos possíveis.

Ao contrário da plataforma Desktop, por exemplo, onde existe um conjunto limitado de resoluções possíveis (800x600, 1024x768, etc), nos dispositivos móveis a quantidade de resoluções disponíveis é muito grande, isso se tratando de devices como smartphones, onde embora haja diferenças, as resoluções são parecidas.

Entretanto, um mesmo aplicativo, em teoria, deveria rodar bem em um smartphone com resolução 480x800, assim como em um tablet com resolução 720x1280. Outro agravante nestes devices é que a resolução é mutável, sendo 720x1280 se o tablet estiver na posição retrato, ou 1280x720 se estiver na posição paisagem.

Uma técnica para “resolver” este problema é aumentar proporcionalmente o tamanho dos componentes da tela de acordo com a resolução. Assim, em um device 600x800, os componentes visuais terão a metade do tamanho se comparado a um device 1200x1600.

Aparentemente esta técnica resolve o problema, entretanto, não de forma inteligente, pois poderíamos apresentar ainda mais informações, por exemplo, em device maiores, e resumir o número de informações em devices menores.

Um exemplo muito interessante do uso desta técnica é o aplicativo BM&F Bovespa, que possui um comportamento diferenciado em smartphones (Figura 1) e em tablets (Figura 2).

BM&F Bovespa em um Smartphone
Figura 1. BM&F Bovespa em um Smartphone
BM&F Bovespa em um Tablet
Figura 2. BM&F Bovespa em um Tablet

Entretanto, outros exemplos desta técnica podem ser observados nas aplicações nativas dos próprios devices Android como, por exemplo, a calculadora, que na orientação retrato apresenta apenas as operações básicas de uma calculadora, já na orientação paisagem apresenta operações presentes nas calculadoras científicas, como raiz quadrada e exponenciação (Figura 3).

Aplicativo Calculadora de um device Android
Figura 3. Aplicativo Calculadora de um device Android

O problema

Desenvolver aplicativos com conteúdo dinâmico, que se ajusta ao tamanho ou orientação da tela automaticamente, fazendo com que quanto maior a tela, mais informação seja apresentada ao mesmo tempo.

A solução

Utilizar o Android Fragments, este disponível a partir da versão 3.0 do Android (HoneyComb). Ele foi criado para minimizar as incompatibilidades visuais dos aplicativos Android que rodam em smartphones (tela pequenas) e tablets (tela grande). A ideia é que a tela seja dividida em pequenos pedaços ou fragmentos (o que dá o nome ao componente).

Na verdade, um Fragment é muito mais do que um pedaço de tela, este pode ser considerado um componente visual, permitindo o desenvolvimento modular e sua reutilização em outras partes do aplicativo. Ele possui um ciclo de vida próprio e características próprias também, como efeito de transição de telas, entre outros.

Cenário para analisar o problema e a solução

Para testar e demonstrar alguns recursos do Android Fragments será desenvolvido um exemplo clássico de aplicativo Lista – Detalhe, onde é apresentada uma lista de elementos com palavras chaves, e ao clicar sobre este, detalhes são apresentados.

Este aplicativo demonstra bem a funcionalidade dos Fragments, já que a primeira parte (em azul na Figura 4) representa a listagem, e a segunda parte (em laranja) representa os detalhes do que foi selecionado.

Cada uma destas partes pode ser um Fragment, e as mesmas podem ser ajustadas de acordo com o tamanho da tela. Se a tela for maior ou estiver na posição paisagem, ambas as partes (azul e laranja) serão apresentadas na mesma tela, se a tela for menor ou estiver na posição retrato, cada parte será apresentada separadamente, conforme a Figura 4.

Figura que representa o cenário abordado
Figura 4. Figura que representa o cenário abordado

Assim, em um primeiro momento será desenvolvido o software sugerido sem Fragments. Em seguida, este será ajustado com o uso do Fragment, sendo este último a melhor prática para o problema proposto.

Para o desenvolvimento, será utilizada uma lista estática com nome de animais, e ao ser clicada, este apresentará a imagem do animal.

Aplicativo desenvolvido sem Fragments

Será desenvolvido um projeto Android chamado “SemFragments”, este armazenado no pacote br.edu.utfpr.semfragments. Para os testes, foi utilizado o Android 4.0.3 (API 15 – IceCream Sandwich), conforme Figura 5.

Tela para criação do projeto Sem Fragments
Figura 5. Tela para criação do projeto Sem Fragments

Por fim, a criação do projeto foi concluído, utilizando o nome MainActivity para a classe, e ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo