rxjava

22
RxJava Горев Артём BSC Владимир Владимир, 2016

Upload: anjlab

Post on 14-Apr-2017

252 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: RxJava

RxJavaГорев АртёмBSC Владимир

Владимир, 2016

Page 2: RxJava

Асинхронные операции

Page 3: RxJava

Асинхронные операции1. Сложная обработка ошибок 2. Много явных и неявных состояний 3. Callback-hell 4. Трудности в поддержке и рефакторинге 5. Утечки памяти

Page 4: RxJava

Reactive Extension

Page 5: RxJava

Единый подход• Rx.NET

• RxJava

• RxClojure

• RxJS

• RxScala

• RxSwift

• RxCpp

• …

Page 6: RxJava

Observable• Может «выпустить» ноль, один или несколько элементов

• Имеет два терминальных состояния

Page 7: RxJava

Каноническая реализация Observable

Page 8: RxJava

Observable + Observer

Page 9: RxJava

(un)Subscription

Page 10: RxJava

Операторы

Page 11: RxJava

Фильтрующие операторы

Page 12: RxJava

Фильтрующие операторы

Page 13: RxJava

Трансформирующие операторы

Page 14: RxJava

Трансформирующие операторы

Page 15: RxJava

Комбинирующие операции

Page 16: RxJava

Комбинирующие операции

Page 17: RxJava

Комбинирующие операции

Page 18: RxJava

ШедулингsubscribeOn(Scheduler)

Указывает на каком потоке нужно выполнить начало подписки

observeOn(Scheduler)

Указывает на каком потоке нужно наблюдать за данными

Page 19: RxJava

Шедулинг

Page 20: RxJava

Reactive Android• https://github.com/ReactiveX/RxAndroid• https://github.com/orfjackal/retrolambda• https://github.com/ReactiveX/RxJava• https://github.com/JakeWharton/RxBinding————————————————————————• http://square.github.io/retrofit/• https://github.com/ragnraok/RxCamera• https://github.com/pushtorefresh/storio• https://github.com/VictorAlbertos/RxCache• https://github.com/VictorAlbertos/RxGcm• https://github.com/Mauin/RxFingerprint• https://github.com/aaronhe42/RxGoogleMapsBinding

Page 21: RxJava

Полезняшкаhttps://github.com/square/leakcanary

Page 22: RxJava

Спасибо за внимание