Skip to content

An Android boilerplate built completely with Kotlin and Jetpack Compose

Notifications You must be signed in to change notification settings

ar9t4/android-boilerplate-jpc-mvvm

Repository files navigation

🚀 Android Jetpack Compose Boilerplate

CompileSDKVersion TargetSDKVersion MinSDKVersion Boilerplate Version

Start developing your new Android application with this boilerplate. It is completely built on Kotlin and Jetpack Compose. Inspired from Now in Android, follows the official architecture guidance e.g. Modern App Architecture in conjunction with MVVM, UseCases and Repository pattern.

Modern App Architecture

  1. A reactive and layered architecture
  2. Unidirectional Data Flow (UDF) in all layers of the app
  3. A UI layer with state holders to manage the complexity of the UI
  4. Coroutines and Flows
  5. Dependency injection best practices.

Pre-Requisites

  1. Install Android Studio
  2. Setup environment variables for Android.

Getting Started

  1. Clone this repo git clone https://github.com/ar9t4/android-boilerplate-jpc-mvvm.git
  2. Open the project with Android Studio and let it download gradle dependencies
  3. Connect an Android device or Android Emulator
  4. Click on Run project
  5. Woah, You are Done!

Features

  1. Modern App Architecture in conjunction with MVVM, UseCases and Repository pattern
  2. Kotlin Coroutines with Flows
  3. Jetpack Compose
  4. Jetpack Navigation
  5. Hilt Dependency Injection
  6. Retrofit: Fetching list of random users from Random User Generator
  7. Room Database: Stores list of random users
  8. Preferences
  9. Work Manager: A pre-defined recurring scheduled work manager job
  10. Multi-Lingual support: In-App Localization with 16 languages support
  11. Dark Theme support: System Default, Light Mode and Dark Modes
  12. Pre-defined Settings, Themes, Languages, Feedback and More screens

Libraries

  1. Kotlin - The official language for Android development
  2. Coroutines - For executing background/async jobs
  3. Flows - For consuming async data streams
  4. ViewModel - For holding and exposing state to the UI in lifecycle aware manner
  5. Jetpack Compose - For building native UI
  6. Compose Navigation - For navigation between screens
  7. Hilt - For dependency injection
  8. Room - For local database support
  9. Work Manager - For executing a one time or recurring scheduled task(s)
  10. Retrofit - For network communication support

How it looks

Light Mode Dark Mode
Unable to load Unable to load

Contribution Guidelines

PR's created as per Official Guidelines are always welcome.

About

An Android boilerplate built completely with Kotlin and Jetpack Compose

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages