Summary
In this chapter, we looked at how the architecture of an Android app is layered and focused on the domain layer, discussing the topics of entities and use cases. We also learned how to use dependency inversion to place use cases and entities at the center of our architecture. We did this by creating repository abstractions that can be implemented in the lower layers. We also learned how to use library modules to enforce separations between layers.
In the chapter's exercise, we created a domain module for an Android application, providing an example of what a domain layer might look like. In the next chapter, we will focus on the data layer, in which we will provide implementations for the repository abstractions we defined in the domain layer, and discuss how we can use these repositories to manage an application's data.