/Mvvm-Architecture-Toolkit

This is only a personal implementation of MVVM architecture that makes your life easier by helping you to keep your screen components independently. It also has a concept of "interaction" defining exactly what the user can do on your screen turning the testing process extremely easier, once now you are able to test the "state" of your app.

Primary LanguageKotlinApache License 2.0Apache-2.0

MVVM Architecture Toolkit

This is only a personal implementation of MVVM architecture that makes your life easier by helping you to keep your screen components independently. It also has a concept of "interaction" defining exactly what the user can do on your screen turning the testing process extremely easier, once now you are able to test the "state" of your app.

It is extremely simple to use it and to test it. But again, it is only a personal implementation. However, if this library help you anyway, please give me a star :)

Download

ext {
    MVVM_ARC_VERSION = '2.1.0'
}

// [REQUIRED] Core library. With the architecture components.
implementation "io.github.mayconcardoso:mvvm-core:${MVVM_ARC_VERSION}"

// [OPTIONAL] Core Extension library. With the architecture components extensions to bind states and so on.
implementation "io.github.mayconcardoso:mvvm-core-ktx:${MVVM_ARC_VERSION}"

// [OPTIONAL] Testing library. To test your architecture easily with contextual functions to make your tests cleaner.
testImplementation "io.github.mayconcardoso:mvvm-core-testing:${MVVM_ARC_VERSION}"

// [OPTIONAL] Networking library. To help you create your APIs easily with mapped errors to better handle business logic and avoid crashes.
implementation "io.github.mayconcardoso:networking:${MVVM_ARC_VERSION}"

// [OPTIONAL] Simpler recyclerview library. To make it simpler and reduce the boilerplate needed to render a list of items.
implementation "io.github.mayconcardoso:simple-recyclerview:${MVVM_ARC_VERSION}"

Related Library

Architecture Boilerplate Generator - It is a personal code generator to create new features and to avoid writing a lot of boilerplate.

Documentation

Sample

Here are a couple of real android Apps implementing this library to define their architecture.