Used for network requests
Used for asynchrononus operations
Used for data binding in the MVVM pattern
Used to bind the data to the tableview. RxDataSources also calculates the difference between each load and determines where to delete or insert rows to the tableview.
Used for JSON parsing
Used to display a graceful error message to the user when there is no network.
Used for stubbing out network calls while unit testing.