UI é evento • Eventos do sistema, mensagens, notificações push • Os dados estão na “nuvem” • Acesso local em banco também tem custo • Um só modelo de evento / execução assíncrona
currentText = String.valueOf(view.getText()); final BehaviorSubject<String> subject = BehaviorSubject.create(currentText); view.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged( CharSequence charSequence, int i, int i2, int i3) { } @Override public void onTextChanged( CharSequence charSequence, int i, int i2, int i3) { } @Override public void afterTextChanged(Editable editable) { subject.onNext(editable.toString()); } }); return subject.asObservable(); } TextView text changed BehaviorSubject: observer receberá o último evento antes da inscrição e todos os próximos
val sendClicked = Events.click(sendButton) Habilitando o botão de ação Ação do botão message.combineLatest(sendClicked).subscribe { textAndObject => startActivity(new Intent(Intent.ACTION_VIEW, "http://www.google.com/search?q="+textAndObject._1)) }