Por que eu devo ler este artigo:O framework Android Annotations permite diminuir a quantidade de código concentrado nas funções de estado de tela, aumentando a divisão de responsabilidades entre as funções do sistema.

Este artigo irá demonstrar a construção de uma aplicação simples explorando os principais recursos do Android Annotations. Todos os recursos serão apresentados com uma comparação entre o código Android sem uso de frameworks e o código com o uso do Android Annotations, ilustrando a redução de linhas de código.

O código apresentado se refere a uma parte da implementação de uma aplicação que tem como funcionalidade básica postar uma mensagem no Twitter. O sistema tem uma única Activity, denominada de PostActivity, e nela existem quatro views: um texto identificando o usuário, um campo de texto, um contador de caracteres e um botão para envio da mensagem.

Este artigo será útil para desenvolvedores Android que desejem construir códigos mais limpos e legíveis, e aumentar a produtividade em seus projetos. Aqui será apresentada a motivação por trás do Android Annotations, como configurar projetos e IDE com o framework, além de mostrar os principais recursos da ferramenta com um passo a passo da criação de uma aplicação Android para postagens no Twitter.

Quem desenvolve aplicações para Android já deve ter notado um estilo de codificação semelhante entre as aplicações desenvolvidas para a plataforma. É fácil identificar um código desenvolvido para Android, pois o framework estimula uma estrutura de códigos grandes e repetitivos.

Seja em implementações de Listeners para eventos, ou ao referenciar e configurar Views e Adapters, sempre se vê uma grande quantidade de classes anônimas e casts.

Esse código “inchado”, também conhecido como Boilerplate Code ou “código clichê”, são seções de código que precisam ser incluídas, repetidas vezes, com pouco ou nenhum impacto no funcionamento do sistema, normalmente incentivado pela linguagem ou plataforma.

Um exemplo clássico de Boilerplate Code são as funções Get e Set implementadas em Java para garantir o encapsulamento de atributos (veja a Listagem 1). Na linguagem C# o mesmo objetivo pode ser alcançado através do recurso de Properties, reduzindo significativamente o tamanho do código, como pode ser visto na Listagem 2.

Listagem 1. Funções get e set em Java.


  01 public class Person {
  02     private String name;
  03     private byte age;
  04 
  05     public String getName() {
  06         return this.name;
  07     }
  08 
  09     public void setName(String name) {
  10         this.name = name;
  11     }
  12 
  13     public byte getAge() {
  14         return this.age;
  15     }
  16 
  17     public void setAge(byte age) {
  18         this.age = age;
  19     }
  20 }

Listagem 2. Exemplo de Properties em C#.


  01 public class Person {
  02     public String Name { get; set; }
  03     public byte Age { get; set; }
  04 }

Um código com menos Boilerplate Code se torna mais limpo e legível, o que consequentemente acelera o processo de desenvolvimento. A relação da simplicidade de códigos com agilidade em projetos de software já era levantada anos atrás por Robert Martin, que com base em sua experiência observou que durante a fase de desenvolvimento de um sistema o tempo gasto na leitura do código era pelo menos dez vezes maior do que o tempo gasto na escrita do código.

Sendo assim, o tamanho, organização e outras variáveis que influenciam a legibilidade, são aspectos importantes para o sucesso de projetos de software.

Com o intuito de melhorar a legibilidade de códigos Android e agilizar o processo de desenvolvimento, foi proposto por Pierre-Yves Ricau um framework de código aberto chamado AndroidAnnotations. O framework é baseado no Diet Driven Development, ou “desenvolvimento orientado a dieta”, em uma analogia a um código “gordo” e a necessidade de emagrecer (Figura 1).

Figura 1. Diet Driven Development com AndroidAnnotations.

Introdução ao Android Annotations

Assim como as dietas que prometem reduzir uma quantidade de quilos por semana, o Android Annotations também promete uma redução de pelo menos 40% no número de linhas de código do sistema, agregando legibilidade e manutenibilidade. O framework permite diminuir a quantidade de código concentrado nas funções de estado de tela, aumentando a divisão de responsabilidades entre as funções do sistema. Além disso, com a diminuição do Boilerplate Code, o desenvolvedor pode dirigir seu foco mais para as regras de negócio do que para detalhes de conexão de componentes e funcionamento da plataforma.

O AndroidAnnotations disponibiliza mais de 70 annotations (veja a Figura 2), provendo recursos interessantes e bastante úteis como injeção de dependência e simplificação no uso de threads e RE ...

Quer ler esse conteúdo completo? Tenha acesso completo