Summary
In this chapter, we started looking into the data layer of an Android application and provided an overview of the components that are part of this layer. We also looked at the Repository component, which is responsible for managing the data provided by one or more data sources, and provided examples of how we could build different repositories. We also looked at the relationship between repositories and data sources and how we can further decouple the components with dependency inversion, to keep our repositories unaffected by changes in libraries used to fetch data. Finally, we looked at an exercise on how we can build repositories with local and remote data sources. In the following chapter, we will continue with the data layer and how we can integrate the remote and local data sources with libraries such as Room and Retrofit.