Chapter 8: Getting Started with Clean Architecture in Android
In this chapter, we're continuing our journey of improving the architectural design of the Restaurants application.
More specifically, we will try to adopt some design decisions from the well-known Clean Architecture. Clean Architecture is a software design philosophy that tries to create projects with the best level of the following:
- Separation of concerns
- Testability
- Independence of frameworks or libraries used in peripheral layers, such as the UI or Model layer
By doing so, Clean Architecture tries to allow the business parts of our applications to adapt to changing technologies and interfaces.
Clean Architecture is a very broad and complex topic, so, in this chapter, we will try to focus only on establishing a better separation of concerns by separating existing layers even further, but more importantly, by defining a new layer called the Domain layer.
In this chapter, we will on...