Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arquitetura Android - MVP + Dagger2 + RXJava

Arquitetura Android - MVP + Dagger2 + RXJava

Apresentação criada para mostrar os benefícios de uma arquitetura MVP utilizando injeção de dependência com Dagger2 e seguindo conceitos de programação reativa com RXJava.

Haroldo Olivieri

March 07, 2017
Tweet

More Decks by Haroldo Olivieri

Other Decks in Programming

Transcript

  1. app Aplicação Android que depende de todos os outros módulos

    domain Interface dos modelos da aplicação remote-repository Interface dos repositórios da aplicação remote-repository-retrofit Implementação do módulo acima, para repositório remoto utilizando retrofit
  2. app Aplicação Android que depende de todos os outros módulos

    domain Interface dos modelos da aplicação remote-repository Interface dos repositórios da aplicação remote-repository-retrofit Implementação do módulo acima, para repositório remoto utilizando retrofit
  3. app Aplicação Android que depende de todos os outros módulos

    domain Interface dos modelos da aplicação remote-repository Interface dos repositórios da aplicação remote-repository-retrofit Implementação do módulo acima, para repositório remoto utilizando retrofit
  4. app Aplicação Android que depende de todos os outros módulos

    domain Interface dos modelos da aplicação remote-repository Interface dos repositórios da aplicação remote-repository-retrofit Implementação do módulo acima, para repositório remoto utilizando retrofit
  5. MVP

  6. Principais Annotations do Dagger @Module and @Provides Define as classes

    e métodos que provêm dependências @Qualifier Quando apenas o tipo não é suficiente @Inject Requisita uma dependência. Pode ser usada em um construtor, num campo ou num método @Component É usado para associar os módulos aos alvos de injeção
  7. @Module and @Provides Define as classes e métodos que provêm

    dependências @Qualifier Quando apenas o tipo não é suficiente @Inject Requisita uma dependência. Pode ser usada em um construtor, num campo ou num método @Component É usado para associar os módulos aos alvos de injeção Principais Annotations do Dagger
  8. Principais Annotations do Dagger @Module and @Provides Define as classes

    e métodos que provêm dependências @Qualifier Quando apenas o tipo não é suficiente @Inject Requisita uma dependência. Pode ser usada em um construtor, num campo ou num método @Component É usado para associar os módulos aos alvos de injeção
  9. Principais Annotations do Dagger @Module and @Provides Define as classes

    e métodos que provêm dependências @Qualifier Quando apenas o tipo não é suficiente @Inject Requisita uma dependência. Pode ser usada em um construtor, num campo ou num método @Component É usado para associar os módulos aos alvos de injeção
  10. Como o Dagger 2 usa código gerado para acessar os

    campos (e não reflection), não é possível utilizar campos privados para injeção.
  11. Um Observable pode emitir qualquer número de itens (incluindo 0),

    ele pode ser terminado tanto pelo sucesso quanto pelo erro.
  12. Para cada Subscriber assinado, um Observable chama Subscriber.onNext() quantas vezes

    for necessário, seguido de Subscriber.onComplete() ou Subscriber.onError() uma única vez.
  13. :C

  14. :(

  15. :)

  16. :s