https://github.com/mykola-kichatov/android-clean-template
It's a typical list-detail app. Simple Android app template utilizing Jetpack Compose, suitable for creating general Android native apps
https://github.com/mykola-kichatov/android-clean-template
android clean-architecture compose compose-navigation hilt jetpack-compose junit5 kotlin-coroutines ktlint ktlint-rules mockk mvvm offline-first public-api pure-kotlin retrofit room shared-element-transition template template-repository
Last synced: about 2 months ago
JSON representation
It's a typical list-detail app. Simple Android app template utilizing Jetpack Compose, suitable for creating general Android native apps
- Host: GitHub
- URL: https://github.com/mykola-kichatov/android-clean-template
- Owner: mykola-kichatov
- Created: 2021-07-13T20:06:25.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-14T13:40:51.000Z (9 months ago)
- Last Synced: 2024-09-14T23:26:52.115Z (9 months ago)
- Topics: android, clean-architecture, compose, compose-navigation, hilt, jetpack-compose, junit5, kotlin-coroutines, ktlint, ktlint-rules, mockk, mvvm, offline-first, public-api, pure-kotlin, retrofit, room, shared-element-transition, template, template-repository
- Language: Kotlin
- Homepage:
- Size: 428 KB
- Stars: 52
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-list - mykola-kichatov/android-clean-template - It's a typical list-detail app. Simple Android app template utilizing Jetpack Compose, suitable for creating general Android native apps (Kotlin)
README
# android-clean-template
A simple Android app template repository that provides a basic structure for building general Android native applications.
This project incorporates the best practices and features I've gained from my experience.# Clean Architecture
The project is modularized into the following components:
- [domain](domain) modules are written in pure Kotlin, with no external dependencies. These modules contain use-cases and repository interfaces
- [data](data) modules include all repositories implementations, database, and network layers
- [feature](feature) modules are responsible for presentation. Built using MVVM and Jetpack Compose
- [app](app) is the Android application module that integrates all other modules into a complete app# Features and technologies
1. Gradle build config is based on Kotlin DSL and [version catalogs](https://developer.android.com/build/migrate-to-catalogs)
2. Dependency injection with [Hilt](https://developer.android.com/training/dependency-injection/hilt-android)
3. Jetpack Compose for building UI
4. Declarative conditional navigation
5. Unit tests using JUnit5 and [MockK](https://mockk.io/)
6. Shared Element Transitions in Jetpack Compose
7. Gradle Convention Plugins for build optimization
8. etc.