simples pelo simples google android com robo guice

42
Simples pelo Simples: Google Android com RoboGuice Diogo Souza http://diogosouza.com.br

Upload: diogo-souza

Post on 07-Jul-2015

4.766 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Simples pelo simples   google android com robo guice

Simples pelo Simples:

Google Android com RoboGuice

Diogo Souza

http://diogosouza.com.br

Page 2: Simples pelo simples   google android com robo guice

Diogo Souza

Entusiasta Java e

grande curioso do

Android (mesmo sem

um samsung galaxy...)

Systems Analyst at

Instituto Atlântico

@diogo_souza_c

http://diogosouza.com.b

rhttp://conference.javace.org/

Page 3: Simples pelo simples   google android com robo guice

http://conference.javace.org/

Page 4: Simples pelo simples   google android com robo guice

Hablando Androlês...

http://conference.javace.org/

Page 5: Simples pelo simples   google android com robo guice

Hablando Androlês...

http://conference.javace.org/

Programadores Android

Usam Roboguice

Não usam

Mas por quê?

Page 6: Simples pelo simples   google android com robo guice

Quem usa?

http://conference.javace.org/

Page 7: Simples pelo simples   google android com robo guice

Mas afinal de contas, quem é

esse tal de RoboGuice?

http://conference.javace.org/

Page 8: Simples pelo simples   google android com robo guice

Partes rápidas

Framework de injeção de dependências

Código-aberto

Feito para o Android

Base no projeto Google Guice

http://conference.javace.org/

Page 9: Simples pelo simples   google android com robo guice

Revisando...

By Wikipédia:

“(Dependency Injection, em inglês) é um padrão de

desenvolvimento de programas de computadores

utilizado quando é necessário manter baixo o nível de

acoplamento entre diferentes módulos de um sistema.”

http://conference.javace.org/

Page 10: Simples pelo simples   google android com robo guice

Um pouco de história

O Cara Michael Burton

Engenheiro de

Software

Líder no Groupon

Autor do RoboGuice

Acredite, não consegui nenhuma imagem

melhor...

http://conference.javace.org/

Page 11: Simples pelo simples   google android com robo guice

Um pouco de história

“Menos código significa menos

possibilidades de bugs”

“É quase impossível escrever uma app

Android que não se pareça com uma app

Android”

(Mike Burton)http://conference.javace.org/

Page 12: Simples pelo simples   google android com robo guice

Entendendo este suco

Primeiro tínhamos (e ainda temos) as

fábricas estáticas

E agora, injeção!

http://conference.javace.org/

Page 13: Simples pelo simples   google android com robo guice

Entendendo este suco

E o que posso injetar com ele?

Views

Resources, extras, contentViews

POJOs (sim, ele usa o construtor default)

Contextos e atividades

http://conference.javace.org/

Page 14: Simples pelo simples   google android com robo guice

E como ele faz isso?

Context. That’s the secret!

http://conference.javace.org/

Page 15: Simples pelo simples   google android com robo guice

Configurando...

Baixe os jars (roboguice v.2.0 e guice v3.0)

Adicione ao projeto/classpath

Enjoy the play!!

http://conference.javace.org/

Page 16: Simples pelo simples   google android com robo guice

Configurando...

E pra quem curte o maven (quem não curte?):

<dependency>

<groupId>org.roboguice</groupId>

<artifactId>roboguice</artifactId>

<version>2.0</version>

</dependency>

http://conference.javace.org/

Page 17: Simples pelo simples   google android com robo guice

Show me the code (e um exemplo)

http://conference.javace.org/

Ah sim, a Activity...

Page 18: Simples pelo simples   google android com robo guice

Show me the code (e um exemplo)

http://conference.javace.org/

HttpServlet JFrame Activity

Page 19: Simples pelo simples   google android com robo guice

Show me the code (e um exemplo)

http://conference.javace.org/

Não é raro encontrar:

Activities grandes

Com muitas responsabilidades

Chamando umas às outras, ou outros objetos até, e

enviando também suas próprias referências

Contando uma história...

Page 20: Simples pelo simples   google android com robo guice

Show me the code

http://conference.javace.org/

Page 21: Simples pelo simples   google android com robo guice

Show me the code

http://conference.javace.org/

Page 22: Simples pelo simples   google android com robo guice

Coisas demais...

http://conference.javace.org/

E pode ter mais, tudo dentro da mesma

Activity!!

Muita responsabilidade para a Activity!

(Não é legal!)

Page 23: Simples pelo simples   google android com robo guice

Então o que fazer?

http://conference.javace.org/

Dividir para conquistar!

Separamos as responsabilidades

Page 24: Simples pelo simples   google android com robo guice

Uma classe a parte...

http://conference.javace.org/

Page 25: Simples pelo simples   google android com robo guice

E uma Activity mais simples

http://conference.javace.org/

Page 26: Simples pelo simples   google android com robo guice

http://conference.javace.org/

Ok melhorou... Mas

ainda não estou

sentindo aquela

sensação de “saciedade

codificada mórbida”...

Page 27: Simples pelo simples   google android com robo guice

É aí onde entra o RoboGuice

http://conference.javace.org/

Sem mais delongas... Vamos ao código:

Page 28: Simples pelo simples   google android com robo guice

E o novo CalculoIMCActivity

http://conference.javace.org/

Page 29: Simples pelo simples   google android com robo guice

Só pra não dizer que não mostrei a telinha...

http://conference.javace.org/

Page 30: Simples pelo simples   google android com robo guice

Legal, né?

http://conference.javace.org/

RoboGuice é como uma factory methods

gratuita!

@Inject é o novo new

Page 31: Simples pelo simples   google android com robo guice

O que mais posso fazer?

http://conference.javace.org/

System Services

@Inject Vibrator vibrator

this.getSystemService(Context.VIBRATOR_SERVIC

E);

@Inject SharedPreferences preferencias

Page 32: Simples pelo simples   google android com robo guice

O que mais posso fazer?

http://conference.javace.org/

Ainda view’s

@Inject Random random

@InjectExtra Bundle extra

Page 33: Simples pelo simples   google android com robo guice

Ainda tem mais?

http://conference.javace.org/

Logs

Classe Ln (Log Natural)

É mais rápida

Recurso a varargs

Debug e verbose são os mais dispendiosos

Page 34: Simples pelo simples   google android com robo guice

Vai um progresso aí?

http://conference.javace.org/

Page 35: Simples pelo simples   google android com robo guice

Vai um progresso aí?

http://conference.javace.org/

Page 36: Simples pelo simples   google android com robo guice

E o teste?

http://conference.javace.org/

Preciso nem perguntar se

todo mundo testa o

código que faz... :P

Page 37: Simples pelo simples   google android com robo guice

E o teste?

http://conference.javace.org/

Page 38: Simples pelo simples   google android com robo guice

Tá brincando que tem mais?!

http://conference.javace.org/

Se tem? Muito mais...

Onde encontrar?

Nas referências

No meu blog: http://diogosouza.com.br

Internet

Page 39: Simples pelo simples   google android com robo guice

Referências

http://code.google.com/p/roboguice/

http://www.lukew.com/

http://blog.caelum.com.br/

http://www.gonow.com.br

http://conference.javace.org/

Page 40: Simples pelo simples   google android com robo guice

http://conference.javace.org/

Page 41: Simples pelo simples   google android com robo guice

http://conference.javace.org/

Simplicidade

O simples pelo Simples...

Ou melhor, o mais simples

pelo simples...

Page 42: Simples pelo simples   google android com robo guice

http://conference.javace.org/

Obrigado!!