Skip to content

Commit 0b5fe0a

Browse files
bilgehan.kalkanbilgehan.kalkan
bilgehan.kalkan
authored and
bilgehan.kalkan
committed
Create multi module navigation ADR
1 parent 7e3655e commit 0b5fe0a

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
# Gradle Rules
3+
4+
* Status: accepted
5+
* Date: 2021-06-24
6+
7+
## Decision
8+
9+
In the context of in app navigation between module facing concern of creating circular dependencies and causing longer build times we decided for creating navigation module and neglected using reflection to create fragment instances, to achieve in app navigation, accepting using argument classes as DTO, because using reflection breaks type safety.

architecture_decision_records/architecture_decision_records.md

+1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ This architecture decision log (ADL) is the collection of all ADRs created and m
1414
- [ADR-0009](adr/0009-gradle-rules.md) - Gradle file rules
1515
- [ADR-0010](adr/0010-dependency-rules.md) - Dependency configuration rules
1616
- [ADR-0011](adr/0011-resource-management.md) - Resource management
17+
- [ADR-0012](adr/0012-multi-module-navigation.md) - Multi module navigation
1718

1819
For new ADRs, please use [template.md](https://github.com/Trendyol/android-guidelines/blob/master/architecture_decision_records/template.md) as basis. When this template was creating, we inspired from [MADR](https://adr.github.io/madr/).

module_guideline/module_guideline.md

+1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ There are total 5 levels on our concept:
1717

1818
Lower level modules(eg `:common:common-models`) can be used by higher level modules(eg `:trendyol:authentication`) or in its level if not creating circular dependency.
1919
Level of a module is determined by its highest architectural level. For example `:trendyol:elite` has all 3 layers(ui, domain and data) and it's a level 1 but `:trendyol:filter-ui` has only ui layer but it's also a level 1 module.
20+
Level 2 and level 3 modules should be used across minimum 2 modules; otherwise do not separate as new module, use in higher level module.
2021

2122
This separation helped us to create modularized by providing clear sight about dependency boundaries.

0 commit comments

Comments
 (0)