Componentes Android
Activity Service
Fragment Fragment Custom View
Slide 4
Slide 4 text
Comunicação Android
Activity Service
Fragment Fragment Custom View
Slide 5
Slide 5 text
Delegate Android
Activity
Service
Fragment
Fragment Custom View
Slide 6
Slide 6 text
Activity se torna God Object
Activity precisa implementar diversas interfaces
Excesso de cast e instance of
class GodActivity implements A, B, C, D, E, Fuck {}
Delegate :( Android
Slide 7
Slide 7 text
Publish / Subscribe Papéis
Publisher
Event
Bus
Subscriber
Event Event
Slide 8
Slide 8 text
Event Bus Android
Service
Fragment
Fragment Custom View
Event
Bus
Activity
Slide 9
Slide 9 text
EventBus by greenrobot
Slide 10
Slide 10 text
EventBus
// Create a bus
EventBus bus = new EventBus();
// Or use the default
EventBus bus = EventBus.getDefault();
// Publish
bus.post(new AnyEvent());
https://github.com/greenrobot/EventBus
// Create a main thread bus
Bus bus = new Bus();
// Create an any thread bus
Bus bus = new Bus(ThreadEnforcer.ANY);
// Publish
bus.post(new AnyEvent());
Otto https://square.github.io/otto/
Otto
@Subscribe
public void onAnyEvent(AnyEvent e) {
[...]
}
@Produce
public AnyEvent produceAnyEvent() {
return AnyEvent.getLast();
}
https://square.github.io/otto/
Slide 17
Slide 17 text
Via Reflection
Fornece um Bus Default
Valor Anterior via *Sticky
Threading feita no Evento
Otto
EventBus
Via Annotation
Gerenciamento Manual de Bus
Valor Inicial via @Produce
Threading feita no Bus
Slide 18
Slide 18 text
Caso de uso
Activity
Fragment
Custom View
Fragment