Gradle Management: Defining the module relations - devrath/RunTracer GitHub Wiki
Auth-Module

Layers
App layer
- It has reference to all the modules used in the project.
- It is like a glue that sticks all modules together.
Core layer
- The core layer has
3 main
module layers and optional components
layers.
- 3 main layers
Presentation layer
: The presentation layer has 2 sub-modules
Presentation-UI
Presentation-Design-System
Domain layer
- We will access the domain layer outside many features that we build.
- We can imagine it is like
core-domain
is access to domain logic of core module in feature modules.
- We don't have to access the
core-data
in any of our feature modules
Data layer
- Here the core data can access the
android-device
and external sources of services
Component layer
- Here we isolate this layer because it can be changed in the future when we switch the service we are pointing
- This is kept this way because we can re-use this layer in another project if needed
Feature layer
- The core layer has
3 main
module layers and optional components
layers.
- 3 main layers
Presentation layer
- The presentation layer contains
view
and view-models
.
- It is connected to the
core-domain
layer.
- It is also connected to the domain of the feature.
Domain layer
- It is not connected to any of the feature layers
Data layer
- It is connected to
domain-core
- It is connected to
data-core
(Try in the future to remove this)
- Also it is connected to the
domain
of the feature.
Component layers
- Now the
component layer
can be a stand-alone layer unique to this feature
- This is kept this way because we can re-use this layer in another project if needed