Top Banner
Common usage of RxJava in Android
74

Rx Java architecture

Feb 16, 2017

Download

Mobile

e-Legion
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Rx Java architecture

Common usage of RxJava in Android

Page 2: Rx Java architecture

RxJava main advantages

• Concurrency

• Requests Managment

• Data flow manipulation

• Error handling

• Cool, trendy, etc

Page 3: Rx Java architecture

Everything is a stream

Page 4: Rx Java architecture
Page 5: Rx Java architecture
Page 6: Rx Java architecture
Page 7: Rx Java architecture
Page 8: Rx Java architecture
Page 9: Rx Java architecture

Some new Rx objects

Page 10: Rx Java architecture

Schedulers

• computation

• io

• newThread

• from

• + AndroidSchedulers.mainThread

Page 11: Rx Java architecture
Page 12: Rx Java architecture

Subscription

Page 13: Rx Java architecture
Page 14: Rx Java architecture
Page 15: Rx Java architecture
Page 16: Rx Java architecture
Page 17: Rx Java architecture
Page 18: Rx Java architecture

Subject

Can be both Observable and Observer

Page 19: Rx Java architecture

PublishSubject

Page 20: Rx Java architecture

PublishSubject

Page 21: Rx Java architecture

PublishSubject

Page 22: Rx Java architecture
Page 23: Rx Java architecture
Page 24: Rx Java architecture
Page 25: Rx Java architecture
Page 26: Rx Java architecture

Result?

Page 27: Rx Java architecture

ReplaySubject

Page 28: Rx Java architecture

BehaviourSubject

Page 29: Rx Java architecture
Page 30: Rx Java architecture

RxJava Client-server

Page 31: Rx Java architecture
Page 32: Rx Java architecture

RxJava main advantages

• Concurrency

• Requests Managment

• Data flow manipulation

• Error handling

• Cool, trendy, etc

Page 33: Rx Java architecture
Page 34: Rx Java architecture
Page 35: Rx Java architecture

RxJava main advantages

• Concurrency

• Requests Managment

• Data flow manipulation

• Error handling

• Cool, trendy, etc

Page 36: Rx Java architecture

Practice

Page 37: Rx Java architecture
Page 38: Rx Java architecture
Page 39: Rx Java architecture

Solution

Page 40: Rx Java architecture
Page 41: Rx Java architecture

But how to handle configuration changes?

Page 42: Rx Java architecture

Use Rx in conjunction with

• Retain Fragments

• Cached Observables

Page 43: Rx Java architecture

Subscription

Page 44: Rx Java architecture

Use Rx in conjunction with

• Retain Fragments

• Cached Observables

• Bind Rx to Lifecycle

• Loaders

• Services

Page 45: Rx Java architecture

From Dan Lew

Page 46: Rx Java architecture
Page 47: Rx Java architecture
Page 48: Rx Java architecture
Page 49: Rx Java architecture

With loaders

Page 50: Rx Java architecture
Page 51: Rx Java architecture
Page 52: Rx Java architecture
Page 53: Rx Java architecture
Page 54: Rx Java architecture

Singleton

Page 55: Rx Java architecture
Page 56: Rx Java architecture
Page 57: Rx Java architecture

RxJava in Service

Page 58: Rx Java architecture
Page 59: Rx Java architecture
Page 60: Rx Java architecture
Page 61: Rx Java architecture
Page 62: Rx Java architecture

Some Reactive Libraries

Page 63: Rx Java architecture

RxLifecycle from Trello

Page 64: Rx Java architecture
Page 65: Rx Java architecture
Page 66: Rx Java architecture

RxBinding

Page 67: Rx Java architecture
Page 68: Rx Java architecture
Page 69: Rx Java architecture
Page 70: Rx Java architecture
Page 71: Rx Java architecture

RxPermissions

Page 73: Rx Java architecture
Page 74: Rx Java architecture