This branch contains modular clean architecture with Koin for dependency management as an alternative to the main develop branch.
APP
This is the presentation module, also known as the user interaction layer. Here we manage activities, fragments, views and viewModels.
DATA
In this module we find a definition of the different data sources (local or remote).
The implementation of each repository.
Network and endpoints implementation.
Database implementation. (not implemented in this pr).
Test: We added example test to the View models mocking each use case.
Depends on:
data
domain
DOMAIN
It's the layer where we manage the business models.
Depends on: No dependencies.
USE-CASES
This is the management layer of all the actions that the user can trigger. The business logic goes here. Every action that the user can make in the app has a use case.
Depends on:
data
domain
There is an additional BUILDSRC module that we use to manage dependencies and versions. This module takes a system name that is recognized by the compiler and executed in the first instance before loading any other module.
We follow one of the basic principles of development to found the bases on the three following pillars:
SCALABLE
MAINTAINABLE
TESTABLE
Description
This branch contains modular clean architecture with Koin for dependency management as an alternative to the main develop branch.
APP
This is the presentation module, also known as the user interaction layer. Here we manage activities, fragments, views and viewModels.
DATA
In this module we find a definition of the different data sources (local or remote). The implementation of each repository. Network and endpoints implementation. Database implementation. (not implemented in this pr). Test: We added example test to the View models mocking each use case.
Depends on:
data
domain
DOMAIN
It's the layer where we manage the business models. Depends on: No dependencies.
USE-CASES
This is the management layer of all the actions that the user can trigger. The business logic goes here. Every action that the user can make in the app has a use case. Depends on:
data
domain
There is an additional BUILDSRC module that we use to manage dependencies and versions. This module takes a system name that is recognized by the compiler and executed in the first instance before loading any other module.
We follow one of the basic principles of development to found the bases on the three following pillars: SCALABLE MAINTAINABLE TESTABLE
Dependencies Chart: