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

EventBus. Android Simplificado!

EventBus. Android Simplificado!

Palestra apresentada na XX Semana de Informática da Universidade Federal de Viçosa

Avatar for Halyson Lima Gonçalves

Halyson Lima Gonçalves

August 07, 2015
Tweet

More Decks by Halyson Lima Gonçalves

Other Decks in Technology

Transcript

  1. Problemas de Comunicação?! §  Acoplamento forte dos componentes §  Código

    clichê (Boiler plate) ü  Definir Interfaces ü  Callback’s ü  BroadCast Receiver ü  Propagação através de todas camadas ü  Alterações são cara, Inflexível
  2. Ler Alertas DB §  Implementar um handler para enviar a

    mensagem para Thread principal com os alertas §  Declarar o callback para escutar o sucesso da leitura §  Implemetar uma thread para realizar a leitura do Rate no banco de dados §  Executar thread para realizar a leitura no banco de dados
  3. Ler Alertas DB §  Implementar um handler para enviar a

    mensagem para Thread principal com os alertas §  Declarar o callback para escutar o sucesso da leitura §  Implemetar uma thread para realizar a leitura do Rate no banco de dados §  Executar thread para realizar a leitura no banco de dados
  4. Ler Alertas DB §  Implementar um handler para enviar a

    mensagem para Thread principal com os alertas §  Declarar o callback para escutar o sucesso da leitura §  Implemetar uma thread para realizar a leitura do Rate no banco de dados §  Executar thread para realizar a leitura no banco de dados
  5. Ler Alertas DB §  Implementar um handler para enviar a

    mensagem para Thread principal com os alertas §  Declarar o callback para escutar o sucesso da leitura §  Implemetar uma thread para realizar a leitura do Rate no banco de dados §  Executar thread para realizar a leitura no banco de dados
  6. Ler Alertas DB §  Implementar um handler para enviar a

    mensagem para Thread principal com os alertas §  Declarar o callback para escutar o sucesso da leitura §  Implemetar uma thread para realizar a leitura do Rate no banco de dados §  Executar thread para realizar a leitura no banco de dados
  7. Resumo §  Acoplamento total §  Mudanças saem caro §  Manutenção

    difícil §  Activity se torna Objeto “Deus” §  Código clichê (Boiler plate) §  Boas práticas de engenharia de software somem
  8. Event Bus? §  Paradgima de programação orientada a eventos § 

    Modelo Publish/Subscribe §  Framework’s open-source §  Evita Código clichê (Boiler plate) §  Simplifica a comunicação entre componentes (Activity, Fragment, Threads, Services…)
  9. EventBus §  Mantido pela GreenRobot §  Herança de eventos § 

    Nome dos eventos por convenção §  Cache de eventos §  Não é baseado em anotações
  10. EventBus //Cria um barramento EventBus bus = new EventBus(); //Ou

    use o default EventBus bus = EventBus.getDefault(); //Publica bus.post (new AnyEvent());
  11. EventBus //Registra – onCreate() da Activity bus.register(this); //Desregitra– onDestroy() da

    Activity bus.unregister(this); //Ouvinte public void onEvent(AnyEvent anyEvent){ […..] } public void onEventMainThread(AnyEvent anyEvent){ […..] }
  12. Otto §  Mantido pela Square §  Declaração de eventos por

    anotação §  Fácil de configurar §  Fork do Guava §  Não existe herança de eventos §  Plugin Android Studio
  13. Otto //Cria um barramento Bus bus = new Bus(ThreadEnforcer.ANY); Bus

    bus = new Bus(ThreadEnforcer.MAIN); //Publica bus.post (new AnyEvent()); @Produce public AnyEvent produceAnyEvent(){ return AnyEvent.getLast(); }
  14. Otto //Registra – onCreate() da Activity bus.register(this); //Desregitra– onDestroy() da

    Activity bus.unregister(this); //Ouvinte @Subscriber public void onLoadAnyEvent(AnyEvent anyEvent){ […..] }