segunda-feira, 14 de dezembro de 2015

Android Support Annotations

Olá povo,

Vou tentar atualizar o blog com mais frequência com posts menores como este. É um assunto relativamente novo, mas pouco utilizado (e conhecido) pelos desenvolvedores (inclusive eu).

Por questões de performance, é recomendado que evitemos a estrutura "enum" em aplicações Android, substituindo-as por um inteiro (int).
Mas aí sempre vem a pergunta: e como restringir os valores? Por exemplo: digamos que a classe Encomenda possui um atributo chamado status que pode receber apenas os valores "aberto", "em trânsito", "cancelado" e "entregue".

Com as anotações do Android podemos definir uma constante do tipo int para cada status e depois informar no atributo que ele só poderá receber um desses valores.

Para utilizar as anotações do Android, adicione a seguinte dependência no build.gradle.
dependencies {
 ...
 compile 'com.android.support:support-annotations:23.+'
}

Agora vejamos o código a seguir:
class Encomenda {
    public static final int STATUS_ABERTO      = 0;
    public static final int STATUS_EM_TRANSITO = 1;
    public static final int STATUS_CANCELADO   = 2;
    public static final int STATUS_ENTREGUE    = 3;
    
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
            STATUS_ABERTO, 
            STATUS_EM_TRANSITO, 
            STATUS_CANCELADO,
            STATUS_ENTREGUE
    })
    public @interface Status {
    }

    @Status
    public int status;
}
A anotação @Retention indica onde a anotação atuará. No nosso caso, indicamos que ela é usada apenas no processo de compilação. Mas poderíamos utiliza-la em runtime. E com a anotação @IntDef estabelecemos os valores que podem ser utilizados pelo elemento que utilizar essa anotação. Por fim, anotamos o atributo "status" o @Status para restringir os valores que podem ser atribuídos a ele.
Desta forma, o código a seguir, daria erro pois 10 não é um valor de status válido:
Encomenda encomenda = new Encomenda();
encomenda.status = 10;
Com essa abordagem, você deixa de utilizar as enums e ainda deixa o seu código robusto evitando valores inválidos.

Mas isso é só o começo! A biblioteca de Android Suppport Annotations permite:
  • Validar se um parâmetro de método pode ser nulo ou não com @Nullable ou @NonNull;
  • Informar com @StringRes que um atributo do tipo int receberá o id de um texto do values/strings.xml;
  • Determinar se um método deve executar na main thread (com @UiThread ou @MainThread) ou em uma thread separada @WorkerThread;
  • Determinar que uma variável/atributo/método receberá o RGB de uma cor utilizando @ColorInt.
  • Informar que uma chamada necessita de uma permissão no AndroidManifest.xml utilizando @RequiresPermission.
E ainda tem muito mais! Mais informações vocês podem encontrar nos links abaixo:

4br4ç05,
nglauber

domingo, 25 de outubro de 2015

DevFest Sudeste 2015


Olá povo,

No dia 24 de outubro de 2015 participei do GDG DevFest Sudeste. Eu participei do evento apresentando uma palestra sobre desenvolvimento para Android Wear.
Mas sem sobra de dúvida, a melhor parte do evento é rever os amigos e conhecer gente nova e falar de tecnologia com o pessoal :)
Gostaria de agradecer o convite parabenizar todos os organizadores e participantes do evento.



4br4ç05,
nglauber

sexta-feira, 25 de setembro de 2015

DevFest Nordeste 2015



Olá povo,

O GDG DevFest é uma iniciativa do Google em parceira com os GDGs (Google Developer Groups) de todo o mundo para oferecer grandes eventos para a comunidade de desenvolvedores. Esse ano, a temporada de DevFests acontecerá entre 1 de setembro e 30 de novembro.
Aqui no Brasil, teremos pelo menos um DevFest em cada região do país. E o DevFest Nordeste 2015 será realizado em Recife, no dia 17 de outubro no Recife Antigo e contará com grandes palestrantes de várias partes do Brasil. Serão três trilhas onde serão discutidas tecnologias web, mobile e muito mais.
Eu participarei do evento com a palestra "Google Play Services Rocks!!!" onde vamos ver como adicionar funcionalidades fantásticas ao seu aplicativo utilizando as APIs do Google.

Para mais informações, consulte o site do evento.
Você não vai perder essa oportunidade de aprender novas tecnologias e fazer parte dessa grande comunidade de desenvolvedores?

Nos vemos lá! ;)

[EDITADO 17/10/2015]


4br4ç05,
nglauber

segunda-feira, 27 de julho de 2015

Android Conference 2015

Olá pessoal,

No dia 29 de agosto acontecerá em São Paulo o Android Dev Conference 2015 organizado pelo iMasters em parceria com o GDG São Paulo. Este é um dos principais eventos do Brasil sobre desenvolvimento Android e reunirá cerca de 800 desenvolvedores. O objetivo é abordar temas avançados sobre Android de modo a disseminar esse conhecimento com comunidade de desenvolvedores de modo a aumentar a produtividade e melhorar a qualidade das aplicações desenvolvidas.

Eu participarei do evento juntamente com grandes palestrantes do Brasil que trabalham nas maiores empresas do país. As inscrições estão abertas! Não perca mais essa oportunidade de aprender e aumentar o networking ;)

Nos vemos lá!

[EDITADO 31/08/2015]
Slides da apresentação.


[EDITADO 29/12/2015]


4br4ç05,
nglauber

segunda-feira, 13 de julho de 2015

FreeTec 2015

Olá povo,

A Unibratec está promovendo o FREETEC 2015 com palestras e mini-cursos gratuitos. Eu vou estar lá no próximo dia 30/07 para ministrar um codelab de Android (4 horas). Infelizmente as vagas já esgotaram para esse mini-curso :( Mas tem um monte de coisa boa lá! Dá uma conferida na programação completa e inscreva-se já ;)

[Editado 31/07/2015]
O código fonte que fizemos em sala pode ser baixado aqui!


4br4ç05,
nglauber

The Developers Conference

Olá pessoal,

A movimentação aqui no blog esse ano está um pouco devagar, principalmente por conta de trabalho, estudos e por uma mudança de endereço que me deixou num corre-corre danado. Então só está dando tempo pra avisar por onde vou estar falando de Android Brasil à fora.

Entre os dias 21 e 25 de julho participarei do TDC (The Developer's Conference) na Universidade Anhembi Morumbi em São Paulo. Um dos maiores eventos do Brasil voltado para desenvolvedores. São mais de 40 trilhas, com 9 horas de conteúdo em cada uma.
No primeiro dia falarei sobre como acelerar a produtividade no desenvolvimento de aplicações Android utilizando bibliotecas que não estão no Android SDK. E nos dias 23 e 24 participarei do Hands-on Lab de Real Sense ministrado pelo meu amigo Felipe Pedroso.

4br4ç05,
nglauber

quinta-feira, 4 de junho de 2015

Intel Software Day 2015


Olá povo,

Nos dias 12 e 13 de junho acontecerá em Salvador o Intel Software Day, um evento sobre tecnologia, inovação e muito desenvolvimento de software, que tem como objetivo levar o que existe de mais novo ao ecossistema de tecnologia brasileiro através de trilhas técnicas e workshops sobre temas como Android, Internet das Coisas, HPC, RealSense e Windows.

Vou participar do evento falando de "Produtividade com Android Libs". Onde vou apresentar a principais bibliotecas utilizadas no desenvolvimento de aplicativos Android.

Também estarão lá meu amigos Tiago Barros (CESAR), Ubiratan Soares (GDE Android), Ricardo Lecheta, e muitas outras feras!

[EDITADO 12/06/2015]




4br4ç05,
nglauber