Skip to content

Commit aa2e475

Browse files
committed
Merge branch 'develop'
2 parents b89f8df + 5e1ee50 commit aa2e475

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

docs/contributing/codebase.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
This app follows something inspired from Clean Architecture and package-by-feature.
44

5+
## Modules
6+
7+
Key Mapper is becoming a very complex application with FOSS and closed source components so it makes sense to modularize it into separate Gradle modules. The modules are described below.
8+
9+
- `app`: The main Android application module that depends on all the other modules.
10+
- `base`: This contains the majority of the Key Mapper code and all the user interface code.
11+
- `common`: Utility classes used across many modules.
12+
- `data`: The persistance layer, the Room database and preferences. The data schema is defined here, including for closed source components.
13+
- `shizuku`: The Key Mapper implementation of Shizuku so that we can present our own user interface for setting up Shizuku without their app.
14+
- `system`: All the adapters for interacting with the Android framework. All key map actions ultimately call the code here.
15+
- `systemstubs`: Stubs for hidden system APIs. This contains AIDL files as well as manually written Java stubs if the AIDL file would clash with an SDK file.
16+
517
## Architecture
618

719
All data structures that are persisted are passed around as one of two objects:

0 commit comments

Comments
 (0)