Slide 1

Slide 1 text

PROGRAMAÇÃO REATIVA COM RXJAVA Breno Ferreira @breno_ferreira http://www.github.com/brenoferreira

Slide 2

Slide 2 text

FUNCTIONAL REACTIVE PROGRAMMING

Slide 3

Slide 3 text

NA MAIOR PARTE DO TEMPO, ESTAMOS REAGINDO AO AMBIENTE

Slide 4

Slide 4 text

• Dados de geolocalização (GPS) • Push notifications • Eventos complexos

Slide 5

Slide 5 text

ITERATOR VS OBSERVER interface IEnumerable { IEnumerator GetEnumerator(); } interface IEnumerator { bool MoveNext(); //throws Ex T Current { get; } }

Slide 6

Slide 6 text

ITERATOR VS OBSERVER interface IObservable { IEnumerator GetEnumerator(); } interface IEnumerator { bool MoveNext(); //throws Ex T Current { get; } }

Slide 7

Slide 7 text

ITERATOR VS OBSERVER interface IObservable { IEnumerator GetEnumerator(); } interface IObserver { bool MoveNext(); //throws Ex T Current { get; } }

Slide 8

Slide 8 text

ITERATOR VS OBSERVER interface IObservable { void Subscribe(IObserver observer); } interface IObserver { bool MoveNext(); //throws Ex T Current { get; } }

Slide 9

Slide 9 text

ITERATOR VS OBSERVER interface IObservable { void Subscribe(IObserver observer); } interface IObserver { void OnNext(T item) T Current { get; } }

Slide 10

Slide 10 text

ITERATOR VS OBSERVER interface IObservable { void Subscribe(IObserver observer); } interface IObserver { void OnNext(T item) void OnError(Exception ex) }

Slide 11

Slide 11 text

ITERATOR VS OBSERVER interface IObservable { void Subscribe(IObserver observer); } interface IObserver { void OnNext(T item) void OnError(Exception ex) void OnCompleted() }

Slide 12

Slide 12 text

O VERDADEIRO PODER DO RX • filtros (where, distinct, skip, take, all, any) • agregações (count, min, max, avg, sum, aggregate) • Transformações (map, flatMap) • Combinações (concat, merge, zip) • Schedulers

Slide 13

Slide 13 text

RXJAVA Implementação do Rx for .NET em Java Feito pela Netflix Adaptors para Scala, Groovy, Clojure, JRuby

Slide 14

Slide 14 text

HTTP://GITHUB.COM/NETFLIX/RXJAVA

Slide 15

Slide 15 text

LIBRARYDEPENDENCIES ++= SEQ( "COM.NETFLIX.RXJAVA" % "RXJAVA-SCALA" % "0.9.0" )

Slide 16

Slide 16 text

HTTPS://GITHUB.COM/BRENOFERREIRA/RXJAVATESTS

Slide 17

Slide 17 text

PERGUNTAS?

Slide 18

Slide 18 text

OBRIGADO! @breno_ferreira