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

Programação Reativa com RxAndroid

Programação Reativa com RxAndroid

Apresentação realizada no Android MeetUp #2 na Jump Brasil - Recife/PE

Pedro Felipe

August 08, 2016
Tweet

More Decks by Pedro Felipe

Other Decks in Technology

Transcript

  1. Programação Reativa com RxAndroid PEDRO MOURA AGOSTO/2016 “RxJava is a

    great library, but it’s not easy to get started.” Ribot Labs
  2. AGENDA • Introdução ◦ Chaves: Já chegou o disco voador

    ◦ Reactive Extensions ◦ Old, but gold • Conceitos Básicos ◦ Observable ◦ Observer ◦ Operators ◦ Schedulers • Showcase: Android + RX + Retrofit + Github API • Referências
  3. RX - REACTIVE EXTENSIONS • By Erik Meijer. • “The

    Reactive Extensions is a library for composing asynchronous and event-based programs using observable sequences.[...]”
  4. RX - REACTIVE EXTENSIONS • By Erik Meijer. • “The

    Reactive Extensions is a library for composing asynchronous and event-based programs using observable sequences.[...]”
  5. INTRO Old, but gold! ◦ Execução de código de forma

    assíncrona ◦ Execução e controle de processos concorrentes ◦ Tratamento de erros ◦ Escalabilidade
  6. rx.Observable.Operator “Cada implementação do ReactiveX de linguagens específicas implementam uma

    série de Operators. Embora haja muito coincidência entre implementações, há também alguns operadores que só são aplicadas em determinadas implementações. Além disso, cada implementação tende a nomear seus operadores para se assemelham aos de métodos semelhantes que já estão familiarizados de outros contextos daquela linguagem específica.” - ReactiveX.
  7. rx.Observable.Operator • Operadores de Criação ◦ Create ◦ Empty /

    Never / Throw ◦ From ◦ Range ◦ [...] • Operadores de Transformação ◦ FlatMap ◦ Map ◦ GroupBy ◦ Scan ◦ [...]
  8. rx.Observable.Operator • Operadores de Filtragem ◦ Distinct ◦ Filter ◦

    First ◦ Skip ◦ Take ◦ [...] • Operadores de Combinação ◦ Merge ◦ Zip ◦ Join ◦ [...]
  9. rx.Observable.Operator • Operadores de Erro ◦ Catch ◦ Retry •

    Operadores de Utilidade • Operadores de Condicionais e Booleanos • Operadores Matemáticos • Operadores de Backpressure • Operadores Conectáveis • Operadores de Conversão (To)
  10. rx.Schedulers “If you want to introduce multithreading into your cascade

    of Observable operators, you can do so by instructing those operators (or particular Observables) to operate on particular Schedulers” - ReactiveX
  11. rx.Schedulers/AndroidSchedulers • Schedulers.io() • Schedulers.computation() • Schedulers.immediate() • Schedulers.newThread() •

    Schedulers.trampoline() • Schedulers.reset() • Schedulers.shutdown() • Schedulers.start() • AndroidSchedulers.mainThread()
  12. SHOWCASE: ANDROID + RX + RETROFIT+ GITHUB API Gradle Retrolambda

    Plugin https://github.com/evant/gradle-retrolambda
  13. REFERÊNCIAS - React 2014: Erik Meijer - What does it

    mean to be Reactive? (https://goo.gl/L4X5XY) - Get Reactive by Wolfram Rittmeyer/Pascal Welsch (https://goo.gl/v3bkLv) - Functional Reactive Programming with RxJava (https://goo.gl/ffjvzG) - Github RxJava (https://goo.gl/8Sf6OZ) - Github Showcase (https://goo.gl/NMn61L) - ReactiveX (http://reactivex.io/) - Medium: Crunching RxAndroid (https://goo.gl/8WUukp)