An Android Template with MVVM and Clean Architecture

Last update: May 16, 2022

MVVMTemplate ๐Ÿงžโ€

Language License Actions Status Build Status Quality Gate Status FOSSA Status

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.

Features ๐Ÿ•น

Under Development ๐Ÿšง

  • Add CI
  • Use Kotlin DSL
  • Add Espresso, Instrumentation & Unit tests
  • 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.

References ๐Ÿงท

Contributing ๐Ÿค

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

Result ๐Ÿ“บ

License โš–๏ธ

FOSSA Status

GitHub

https://github.com/Drjacky/MVVMTemplate
Comments
  • 1. Add license scan report and status

    Your FOSSA integration was successful! Attached in this PR is a badge and license report to track scan status in your README.

    Below are docs for integrating FOSSA license checks into your CI:

    Reviewed by fossabot at 2020-11-29 15:33
  • 2. What is the best way to implement a use case that doesn't have any params?

    Do I need to create a separate base use case that doesn't expect params to be passed, or just pass Void as param? what would be your way to handle that ?

    Reviewed by rawan-riwal at 2022-01-08 13:29
  • 3. Upgrade to GitHub-native Dependabot

    Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then.

    Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the new syntax. When merged, we'll swap out dependabot-preview (me) for a new dependabot app, and you'll be all set!

    With this change, you'll now use the Dependabot page in GitHub, rather than the Dependabot dashboard, to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.

    If you've got any questions or feedback for us, please let us know by creating an issue in the dependabot/dependabot-core repository.

    Learn more about migrating to GitHub-native Dependabot

    Please note that regular @dependabot commands do not work on this pull request.

    Reviewed by dependabot-preview[bot] at 2021-04-29 22:40
  • 4. How to include a foreground location service with this architecture?

    Hi Drjacky,

    I want to add a foreground location service in my app (which is based on clean architecture MVVM pattern).

    I want to know, in which manifest file, do I need to put the location permissions.

    I believe it should be in the app module manifest file, but then during runtime, when I will check for the app permissions from my fragment, I need access to my app module (because manifest file with permission is located there).

    So, if I tell my presentation module about the app module, this would breach the clean architecture principle.

    In my current project:

    • Domain knows nothing

    • Data knows about Domain

    • Presentation knows about Domain

    • And App knows all the three

    Edited: Never mind, I believe we have to add the permission in both the manifests, because:

    1. When added only in presentation module, the app crashes
    2. When added only in app module, there is a compiler error

    Thanks again for your repo.

    Thanks Relive

    Reviewed by Relive077 at 2021-11-13 01:53
  • 5. [BUG]: Showing no internet screen after rotation

    Describe the bug Showing no internet error after rotation

    To Reproduce Steps to reproduce the behaviour:

    1. Be sure there is an internet connection
    2. Fetch data
    3. Scroll one page
    4. Disconnect the internet
    5. See the error screen
    6. Connect the internet
    7. Fetch data (optional)
    8. Rotate the device
    9. You must not see the error screen but, you see!

    Expected behaviour After the error screen is gone, we must not see the error screen (without changing any condition) on the other orientation

    Screenshots N/A

    Smartphone (please complete the following information):

    • Device: Pixel 3
    • OS: 10
    • Version 29

    Additional context N/A

    Reviewed by Drjacky at 2021-02-02 21:48
An Android Template with MVVM and Clean Architecture
An Android Template with MVVM and Clean Architecture

MVVMTemplate ??โ€ A simple Android template that lets you create an Android project quickly. How to use ?? Just click on button to create a new repo st

May 16, 2022
Template for MVVM Architecture Clean Code.
Template for MVVM Architecture Clean Code.

Template for MVVM Architecture. This is basic template for android app follwing MVVM architecture and latest tech stack. You don't need to create and add basic code and depency for start project using MVVM architecture. Just use this template and boost your productivity.

May 3, 2022
Template for using Clean Architecture Concepts in Android
Template for using Clean Architecture Concepts in Android

AndroidCleanArchitecture Template for using Clean Architecture Concepts in Android We have separated the layers into three main group Presentation/App

Apr 4, 2022
JeTaxi is built on Clean Architecture-MVVM with Kotlin and follows modern android development trends.
 JeTaxi is built on Clean Architecture-MVVM with Kotlin and follows modern android development trends.

JeTaxi is built on Clean Architecture-MVVM with Kotlin and follows modern android development trends. Also, It uses some of Jetpack and popular libraries. These are Kotlin Coroutine-Flow, kotlinx.serialization, Hilt, Compose, Accompanist, Retrofit2, OkHttp3, Chucker, MockWebServer, Truth.

May 19, 2022
Retrieve Data from an API using MVVM Clean Architecture and Jetpack Compose
Retrieve Data from an API using MVVM Clean Architecture and Jetpack Compose

MVVM Clean Architecture Demo Retrieve Data from an API using MVVM Clean Architecture and Jetpack Compose. It simply shows a list of movies fetched fro

Mar 27, 2022
An android app built using Kotlin following Multi-Module Clean Architecture MVVM
An android app built using Kotlin following Multi-Module Clean Architecture MVVM

RickyandMorty An android app built using Kotlin that consumes RickyadMorty API to display characters.It has been built following Clean Architecture Pr

Feb 3, 2022
AAC MVVM + Clean Architecture + Coroutine Flow

GithubBrowser MVVM Clean Architecture Sample AAC MVVM + Clean Architecture + Coroutine Flow ๋ณธ ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋Š” https://github.com/omjoonkim/GitHubBrowserApp ์„

May 3, 2022
Clean Architecture - Kotlin, MVVM, Use cases
Clean Architecture - Kotlin, MVVM, Use cases

CleanArchitecture Is Clean Architecture only MVVM ? NO, MVVM is a part of clean architecture. MVVM includes Model, View and ViewModel and in addition

May 13, 2022
A simple Cat Search app, performed the search by cat breed name, using MVVM clean Architecture.
 A simple Cat Search app, performed the search by cat breed name, using MVVM clean Architecture.

CatSearchApp A simple Cat Search app, performed the search by cat breed name, using MVVM clean Architecture. The App is using the The Cat Api for sear

Oct 21, 2021
Image Search used MVVM with Clean Architecture

ImageSearchCleanArch Readme In this project I used MVVM with Clean Architecture. MVVM provides a clean separation of concerns between user interface a

Nov 19, 2021
May 15, 2022
๐Ÿ“Š A Minimal Expense Tracker App built to demonstrate the use of modern android architecture component with MVVM Architecture
๐Ÿ“Š A Minimal Expense Tracker App built to demonstrate the use of modern android architecture component with MVVM Architecture

Expenso ?? A Simple Expense Tracker App ?? built to demonstrate the use of modern android architecture component with MVVM Architecture ?? . Made with

May 10, 2022
A template of a client application architecture
A template of a client application architecture

Model-View-ViewModel (ie MVVM) Model-View-ViewModel (ie MVVM) is a template of a client application architecture, proposed by John Gossman as an alter

Oct 20, 2021
A full-featured framework that allows building android applications following the principles of Clean Architecture.

EasyMVP A powerful, and very simple MVP library with annotation processing and bytecode weaving. EasyMVP eliminates the boilerplate code for dealing w

Apr 24, 2022
Playground project built with MVVM with Clean Artchitect to try out new tech in Android ๐ŸŒ

Clean-MVVM-Playground Playground project built with MVVM with Clean Artchitect to try out new tech in Android ?? Features ?? 100% Kotlin Following MVV

May 5, 2022
MVVM + Clean + Hilt + Mockk

Android - MarvelApp What is this repository for? This repository is to show you my skills programming native Android. If you are interested in my prof

Nov 6, 2021
GraphQLTrial is a demo application based on modern Android application tech-stacks and MVVM architecture.

GraphQLTrial is a demo application based on modern Android application tech-stacks and MVVM architecture. App fetching data from the netw

Sep 26, 2021
A small demo application based on modern Android application technology stacks and MVVM architecture
A small demo application based on modern Android application technology stacks and MVVM architecture

Pokedex Pokedex es una pequeรฑa aplicaciรณn de demostraciรณn basada en modernas pil

Dec 17, 2021
A more lightweight and simpler to use MVVM architecture for Android.
A more lightweight and simpler to use MVVM architecture for Android.

A more lightweight and simpler to use MVVM architecture for Android, Data and views are two-way bound.

May 17, 2022