Hi! This is a template for initializing an Android project in MobileUp.
After cloning the template:
- Replace
ru.mobileup.templatewith the package name of your project. - Replace application name and icon to the correct ones.
- Remove the pokemons feature. It is created as an example.
- Replace error text resources with text for your project.
The project is based on three gradle modules:
It pieces all the features together, contains Application and Activity classes. Also all tests are placed here.
It contains general purpose things: error handing, message showing, network, theme, utils, reusable widgets.
It consists of concrete features. Each feature has its own package which contains:
- DI configuration
- ui layer - components, Jetpack Compose UI
- domain layer - entities, interactors
- data layer - repositories, storages
- Jetpack Compose - UI
- Decompose - componentization and navigation
- Replica - organizing of network communication
- Koin - Dependency Injection
- Ktor - Network
- Ktorfit - network requests in Retrofit way
- Coroutines - asynchronous operations
- Kotlin Serialization - JSON serialization and parsing
- Coil - image loading
- Detekt - static code analysis
- Hyperion - debug panel
- Robolectric - unit testing
- Module Graph Gradle Plugin - feature dependency graph visualization and validation
-
Runs detekt static code analysis and module graph validation before commit. Installation:
cp git_hooks/pre-commit .git/hooks/ && chmod 0775 .git/hooks/pre-commit -
Adds issue prefix in every commit message according to branch name. Installation:
cp git_hooks/prepare-commit-msg .git/hooks/ && chmod 0775 .git/hooks/prepare-commit-msg