RxJava: Design Patterns for Android Developers
2h 24mIntermediate2018-07-26
Authors

Jon Bott
Senior iOS Developer at Ancestry.com, Training Consultant
Course details
The RxJava library—a Java virtual machine (VM) implementation of Reactive Extensions—extends the observer pattern, making it easier for Android developers to program apps that respond to user events and data changes. In this project-based course, instructor Jon Bott helps to familiarize developers with key aspects of RxJava as he goes over some simple design patterns that work with reactive programming. Learn about traits, observables, threading, and more—as well as how to add RxJava to a layered architecture such as Model-View-Presenter (MVP) or Model-View-ViewModel (MVVM). Plus, review real-world use cases that can help you gain a practical understanding of these concepts.
Learning objectives
What is RxJava?
Observables
Shortcuts for creating observables
Subjects
Traits
Grouping API service calls
Binding
Threading and UI controls
Learning objectives
What is RxJava?
Observables
Shortcuts for creating observables
Subjects
Traits
Grouping API service calls
Binding
Threading and UI controls
Skills covered
Android DevelopmentAndroidJavaMobile DevelopmentOracleGoogleDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Welcome
- 02 - What you should know
- 03 - The project we'll be building
- 04 - Set up our starter project
1. The Basics
- 05 - What is RxJava
- 06 - Observables
- 07 - Observable types
- 08 - BehaviorRelay - Imperative
- 09 - BehaviorRelay - Declarative
- 10 - Subjects
- 11 - Creating an onError method
- 12 - Creating an onComplete method
- 13 - Creating a simple observable
- 14 - Shortcuts for creating observables
- 15 - Traits
2. Simple UI Example
- 16 - Overview
- 17 - JSONPlaceholder
- 18 - Simple networking
- 19 - Rx single creation
- 20 - Rx single subscription
3. The Model Layer
- 21 - MVP and MVVM - Architecture with Rx
- 22 - Model layer
- 23 - Database - From model layer to UI
- 24 - Database - Showing our result
- 25 - Network layer overview
- 26 - Network - Network layer
- 27 - Network - From model layer to UI
- 28 - Network - Showing our results
- 29 - Network - Using a more reactive way
4. Grouping API Service Calls
- 30 - Overview and task creation
- 31 - Wrap task in observable
- 32 - Observable zip
- 33 - Showing our results
- 34 - Handling null values
- 35 - Handling exceptions
- 36 - Failure result type
5. Binding to the UI
- 37 - Prepare reactive presenter
- 38 - Simple binding
- 39 - Simple list binding
- 40 - RxBinding TextView
- 41 - RecyclerView - Binding setup
- 42 - RecyclerView - Seeing it in action
- 43 - Sectioned data source setup
- 44 - Sectioned data source in action
6. Threading
- 45 - Threading and UI controls
- 46 - observeOn vs. subscribeOn gotcha
Conclusion
- 47 - Next steps