Qualidade de software Android: Annotations

Olá pessoal!

Dando continuidade à série Desenvolvendo para Android, irei falar sobre algumas maneiras para garantir a qualidade de software de seu projeto. Uma das mais efetivas técnicas é o uso de Annotations.

Annotations são marcações no código que definem certos comportamentos de métodos e variáveis. Por exemplo, você pode indicar que um parâmetro de seu método não pode ser null  utilizando a seguinte marcação:

    
public String meuMetodo(String nome, @NonNull Context contexto) {
    return null;
}

Com essa definição de método, se você fizer uma chamada em que context tem valor null, o Android Studio irá automaticamente mostrar um erro:

erro annotation

Ferramentas de análise estática de código como o Lint também utilizam as annotations para indicar erros.

– Mas Felipe, eu sei que não posso chamar o meu método desse jeito!

Sim! mas um programador que tenha que alterar seu código daqui a alguns meses pode não saber. Inclusive você pode não se lembrar 🙂

Adicionando a biblioteca de Annotations ao

Android M – Novidades da nova versão da plataforma apresentados no Google I/O 2015

Ontem (dia 29 de maio de 2015) o Google anunciou a nova versão da plataforma Android. Ainda sem nome (tal como aconteceu no ano passado), a nova versão traz diversas melhorias e algumas boas novidades. Abaixo uma lista das mais importantes, e o impacto delas no desenvolvimento de aplicações Android.

Android M novidades

Novo modelo de permissões

A partir da nova versão, algumas permissões poderão ser solicitadas no momento em que são utilizadas pela aplicação. Por exemplo, o sistema irá perguntar ao usuário se ele permite que aplicação acesse o GPS apenas quando o usuário entrar em uma tela que utiliza este recurso. Particularmente gosto deste modelo (muito parecido com o que acontece em iOS) pois permite que o usuário saiba exatamente para quê a aplicação irá utilizar as permissões.

Em termos de desenvolvimento, agora o desenvolvedor terá que ter um cuidado a mais ao utilizar APIs que acessam tais recursos: Sempre existirá a possibilidade o usuário não permitir o acesso a …

O que esperar do Google I/O 2015

Como a maioria de vocês deve saber, amanhã (28 de maio) começa o Google I/O, evento anual em que o Google apresenta suas novidades.

Google I/O 2015

Neste ano, é esperado o anúncio da nova versão de Android (cujo nome ainda não foi divulgado, e por isso está sendo chamado apenas de Android M) que, segundo rumores, traz diversas melhorias relacionadas à “trabalho” ou mais especificamente, melhorias para usar um telefone Android em seu ambiente de trabalho.

Especulações à parte, é sempre importante estar atento às novas funcionalidades. Por isso, após o evento eu irei colocar no site um resumo das novidades em Android.

 

Para quem puder participar, o evento que terá transmissão ao vivo neste link: https://events.google.com/io2015/

Como o Android MonkeyTest pode ajudar em seu projeto

Você já usou o monkey test em seu projeto Android?

Se não, está perdendo uma chance de encontrar bugs em sua aplicação sem muito trabalho. O Monkey Test é uma das ferramenta do SDK Android e seu intuito é fazer testes aleatórios em uma aplicação.

Android monkey test

Mas como funciona?

O monkey test tool envia para a aplicação eventos de interface com usuário (toques na tela e digitação de textos) totalmente aleatórios sequencialmente. Ou seja, é como se sua aplicação estivesse sendo testada por um macaco (ou por um usuário que não tenha a mínima noção do que está fazendo 🙂 ) .

Mas por que eu iria querer esse tipo de teste na minha aplicação?

Bem, à primeira vista este tipo de teste parece não servir para muita coisa, mas ele é sim útil para encontrar alguns tipos específicos de bugs. Por exemplo, bugs relacionados a alguma race-condition, como o clique em um botão antes de algum componente essencial ser …

Broadcast Receiver – sua aplicação respondendo a eventos

Após aprendermos sobre Activities, Content Providers e Services, resta um dos principais componentes de Android para estudarmos: os Broadcast Receivers.

Os Broadcast Receivers são componentes responsáveis por receber e tratar eventos (ou broadcasts) provenientes do sistema ou de outras aplicações.

Por exemplo, estes são alguns broadcasts do sistema que podem ser tratados por qualquer aplicação:

● android.intent.action.ACTION_BOOT_COMPLETED: indica que o telefone acabou de ser ligado
● android.intent.action.ACTION_POWER_CONNECTED: indica que o carregador foi conectado
● android.intent.action.ACTION_BATTERY_LOW: indica que o nível de bateria está baixo.

Tipos de Broadcast

Existem dois tipos principais de broadcasts:

Ordered broadcast: nesse tipo de broadcast os receivers são invocados respeitando-se a prioridade que é definida ao registrá-los. Usando esta técnica também é possível abortar o broadcast após tratá-lo em sua aplicação.

Normal broadcast: ao contrário do ordered broadcast, os broadcasts “normais” não respeitam a prioridade dos receivers e não podem ser abortados. Porém, sua performance é bastante superior.

Interface

Os …

As novidades de Android 5.1 sob a perspectiva de desenvolvimento

Na última quarta feira (9/3/2015) o google anunciou uma nova atualização da plataforma Android: o Android 5.1. Os telefones nexus já estão recebendo a atualização! Você pode ver o anúncio aqui.

Mas o que muda para os desenvolvedores de aplicações?

Apesar de ser apenas uma atualização da versão 5.0 (Lollipop), foram feitas 3 alterações importantes nas APIs acessíveis aos desenvolvedores:

  • AndroidHttpClient foi marcado como deprecated, reafirmando a intenção do Google de dar suporte apenas ao URLConnection, como já dito aqui.
  • Novas permissões para aplicativos de operadoras: Os aplicativos assinados com a chave específica da operadora (carrier) agora tem mais privilégios, como por exemplo capturar eventos de SMS com maior prioridade usando o CarrierMessagingService.
  • Por fim, a maior mudança: foi adicionado suporte nativo a telefones com dois ou mais sim cards (Multiple SIM)

O suporte a Multiple SIM é especialmente importante para nós, desenvolvedores brasileiros, visto a grande quantidade de telefones com …