Skip to content

Lightweight Jetpack Compose template with Navigation, Retrofit/Ktor, and Dagger-Hilt fully set up, letting you focus on what matters!

License

Notifications You must be signed in to change notification settings

its-me-debk007/kotlin-android-mvvm-template

Repository files navigation

Language   Owner   License

Kotlin Android MVVM Template

A simple+lightweight template for a Jetpack Compose app with Navigation, Retrofit, Dagger-Hilt fully setup for convenience, so you can focus only on what's important!

"Every line of code should be written once, and only once." - Ron Jeffries

Features 🎨

  • Project fully in Jetpack Compose
  • Jetpack Compose Navigation
  • Retrofit (Fully setup with a working sample API Call)

Note

for API Call using ktor, switch to ktor branch

  • MVVM Architecture
  • Kotlin DSL
  • Gradle Version Catalog for dependency management
  • detekt for code smell analysis - configured for Jetpack Compose
  • Dependabot (with a weekly schedule)
  • GitHub Actions CI/CD pipeline to run detekt lint checks + perform unit tests + build and upload apk
  • Coil (for image loading)

Getting Started 👣

  • Click on Use this template button to create a new repository from this template
  • Few TODOs are added, such as changing package name, server base url, api endpoints, etc to guide through the project (just type TODO after pressing SHIFT key twice in Android Studio, to search for the TODOs)
  • Enable Dependabot in repo settings (for ref, a 30 sec video)

Project Structure 🗺️📐🛠️

The project includes a single module app, with following packages:

  • di: contains Dagger-Hilt Module
  • network: includes api service containing api endpoints & type of request
  • model: contains response data class from the server
  • repository: contains repository interface & its implementation
  • presentation: signifies the presentation layer

Contributing 🤝

Join us in shaping the future of this project – your contributions are invaluable! Feel free to open a issue or submit a pull request for any bugs/improvements.

License

Distributed under the MIT License. See LICENSE file for more information.

🌟 If you find value in this project, please consider starring it! Your support keeps it thriving. 🚀