MVVMTemplate ?‍

Language License Actions Status Build Status Quality Gate Status FOSSA Status Android Arsenal

A simple Android template that lets you create an Android project quickly.

How to use ?

Just click on Use this template button to create a new repo starting from this template.

Compose version ⭐

For the compose version, which is under development, switch to feature/compose branch.

Features ?

  • 100% Kotlin-only template
  • Following Clean Architecture approach
  • Following MVVM Architectural Design Pattern
  • Template Project
  • RxJava 3 – Reactive Extensions for the JVM
  • Coroutines – A concurrency design pattern library
  • Flow – Built on top of coroutines and is stream of data that can be computed asynchronously
  • Simplest Adapter Ever (based on this workaround)
  • Github Actions – CI
  • Hilt – Dependency Injection framework
  • Transition – Animation
  • Paging V3 – Pagination
  • View Binding – View Binding
  • OkHttp3 – Network interceptor
  • Retrofit – HTTP client
  • Glide – Loading images
  • Timber – Log
  • Gson – JSON library
  • Material Components – Material Design
  • Lottie – Vector animation library
  • Kotlin DSL – Alternative syntax to the Groovy DSL
  • Detekt – Static code analysis for Kotlin
  • Gradle Doctor – Gradle build scan plugin
  • Navigation – Navigate through the app
  • LeakCanary – Memory leak detection
  • Chucker – An HTTP inspector for Android & OkHTTP
  • StrictMode – A developer tool which detects things you might be doing by accident
  • Dark/Light Theme – Support dark/light themes
  • DataStore – Data storage solution that allows you to store key-value pairs or typed objects
  • AutoDispose – Automatically binding the execution of RxJava streams to a provided scope
  • Dependency Analysis
    • Dependency analysis android gradle plugin
  • Sonatype Scan Gradle Plugin Gradle plugin that scans the dependencies of a Gradle project using Sonatype platforms: OSS Index and Nexus IQ Server.

Under Development ?

  • Add CI
  • Use Kotlin DSL
  • Add Espresso, Instrumentation & Unit tests. To see a part of changes, click here.
  • Use Animations. To see changes, click here.
  • Use Hilt. To see changes, click here.
  • Migrate to Hilt 2.31. To see changes, click here.
  • Use Paging V3. To see changes, click here.
  • Use ViewBinding. To see changes, click here.
  • Migrate to JetPack Compose
  • Use detekt. To see changes, click here.
  • Add coroutines and flow. To see changes, click here.
  • Replace Preferences by DataStore. To see changes, click here.
  • Migrate from RxJava 2 to RxJava 3. To see changes, click here.
  • Add Custom Rx Adapter for Network Response Handling. To see changes, click here.

CI ?

This template is using GitHub Actions as CI.

Available workflows listed as follows:

Tasks ?

  • Gradle Doctor: dependencyUpdates – Displays the dependency updates for the project.
  • Detekt: detektAll – Run the static Kotlin code analysis for the whole project at once.
  • The Dependency Analysis: buildHealth – Provides advice for managing dependencies and other applied plugins.
  • Sonatype Scan Gradle Plugin – AKA Sherlock Trunks: ossIndexAudit – Scans the dependencies of a Gradle project using Sonatype platforms; OSS Index and Nexus IQ Server.

References ?

Contributing ?

Feel free to open an issue or submit a pull request for any bugs/improvements.

Result ?

Compose

License ⚖️

FOSSA Status

GitHub

View Github