Frameworks e bibliotecas para auxiliar no desenvolvimento Android

A ideia deste post não é explicar detalhe-por-detalhe de cada biblioteca/framework mencionado aqui. Mas sim, dar um overview sobre o uso de cada e juntar uma lista de referências para adquirir maiores conhecimentos sobre os mesmos.

1) ShowCaseView
Essa biblioteca teve seu desenvolvimento parado por tempo pelo criador (o mesmo relatou que irá reescrever outra com um API ainda melhor). Porém, parece estar estável e sua função no aplicativo é muito boa.
Ela tem como função representar as funções do aplicativo sendo desenvolvido, fornecendo um tutorial customizável pelo desenvolvedor para o usuário.
A imagem a seguir deve exemplificar melhor:

Um exemplo de uso:

new ShowcaseView.Builder(this)
.setTarget(new ActionViewTarget(this, ActionViewTarget.Type.HOME))
.setContentTitle("ShowcaseView")
.setContentText("This is highlighting the Home button")
.hideOnTouchOutside()
.build();

2) Dagger
Um framework de injeção de dependências para Android.

Um trecho retirado do material da InfoQ explica com mais detalhes o suporte que o Dagger fornece:
“O Dagger atualmente suporta:

– Injeção de construtores utilizando as anotações da JSR-330;
– Criação de objetos utilizando a anotação @Provides;
– Um contexto central para a árvore de dependências;
– Injeções lazy (sob demanda) para recursos mais pesados;
– Sintaxes diferentes para várias implementações da mesma interface;
– Injeção estática, para ambientes legados;
– Validação durante a compilação de bindings (vínculos).”

3) GreenDAO
ORM para uso do SQLite na plataforma Android.

Algumas features listadas no site do GreenDAO:
– APIs fáceis de serem utilizadas;
– Otimizado para Android;
– Consumo de memória mínimo;
– Tamanho da biblioteca pequena (focando no que é essencial para um ORM).

Algo com grande relevância a ser comentado, é que o GreenDAO trabalha com um módulo separado do app.
Nesse módulo, o mesmo terá a função de gerar (gera os objetos DAO, etc..) o mapeamento das tabelas da base de dados.

Exemplo de dependência de módulo no app:

Funcionamento do módulo gerador no GreenDAO:

4) Android Saripaar v2
Resumindo, uma biblioteca para auxiliar na validação de formulário UI básicos (campos edittext, etc..), baseado em regras para o Android.

Se você possui aqueles formulários extensos de cadastros de produto, usuário ou qualquer outra coisa, essa biblioteca cairá como uma luva para você para validação dos campos.

5) Retrofit
Um CLIENT REST type-safe para Android/Java.
Retrofit transforma sua API REST em uma interface Java.

Exemplo:

public interface GitHubService {
@GET("/users/{user}/repos")
List listRepos(@Path("user") String user);
}

Essa ferramenta possibilita:
– Uso dos tipos de método de requisição(GET, POST, PUT, DELETE e HEAD);
– Manipulação da URL (dinamicamente);
– Um objeto pode ser especificado para uso como um body request HTTP;
– Manipulação do HEADER;
– Os métodos podem ser declarados para serem execução de forma síncrona ou assíncrona;
– Os responses da requisição HTTP são convertidos automaticamente para um tipo especificado usando o RestAdapter.

6) Otto
Permite registrar e disparar eventos de qualquer parte da aplicação para qualquer outra parte da aplicação.

Exemplo de publishing:

bus.post(new AnswerAvailableEvent(42));

Exemplo de subscribing:

@Subscribe public void answerAvailable(AnswerAvailableEvent event) {
// TODO: React to the event somehow!
}

7) ButterKnife
Biblioteca para injeção de “View”.
Com ela, você não precisa mais utilizar o bom e velho findViewByid(int) e nem o setOnClickListener ou setOnItemClickListener.
Basta utilizar anotações para mapeamentos dos componentes “View”.

Exemplo de uso:

class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;

@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}

Maioria desses frameworks e bibliotecas podem ser vistas também nos excelentes slides feito pelo Nelson Glauber:

Referências e links de materiais sobre os assuntos abordados:

ShowCaseView:
http://www.android4devs.com/2014/08/best-android-layout-libraries.html
https://github.com/amlcurran/ShowcaseView
https://indiependev.wordpress.com/2014/12/30/using-showcaseview-on-android/

Dagger:
http://square.github.io/dagger/
http://www.infoq.com/br/news/2012/10/dagger-injecao-android
http://antonioleiva.com/dagger-android-part-2/
http://jaxenter.com/dependency-injection-dagger-113803.html

GreenDAO:
https://github.com/greenrobot/greenDAO
http://greendao-orm.com/
http://blog.surecase.eu/using-greendao-with-android-studio-ide/
http://ediposouza.com/tag/greendao

Saripaar:
https://github.com/ragunathjawahar/android-saripaar

Retrofit:
http://ramannanda.blogspot.com.br/2014/10/retrofit-rest-client-for-androidjava.html
http://square.github.io/retrofit/
http://www.devmedia.com.br/android-retrofit-primeiros-passos-com-a-retrofit-api/31857
https://guides.codepath.com/android/Consuming-APIs-with-Retrofit

Otto:
http://square.github.io/otto/
http://www.vogella.com/tutorials/JavaLibrary-EventBusOtto/article.html
http://www.nglauber.com.br/2015/03/explorando-libs-famosas-otto.html

ButterKnife:
http://jakewharton.github.io/butterknife/
http://code.tutsplus.com/tutorials/quick-tip-using-butter-knife-to-inject-views-on-android–cms-23542
http://www.nglauber.com.br/2015/04/explorando-libs-famosas-butter-knife.html

Espero que esse material tenha lhe ajudado em algo!
Boa sorte!

Anúncios

Obrigado pelo comentário.

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s