


This layer provides abstract definitions for accessing data sources like a database or the internet. But in bigger and more complex applications it's a good practice to separate models between layers. In small projects sharing a domain model between all the layers is normal. It also serves as a bridge between the UI Layer and the Data Layer. The Domain layer contains all the models and business rules of your app. Note that it doesn’t matter which pattern you use for this layer and you are free to use what suits your needs best, be it MVP, MVI or something else. We are using the MVVM pattern in this layer. This layer contains the User Interface-related code.
