Skip to content

NickHuk/MVIexample

Repository files navigation

MVIExample

An alternative client for the Anilist API.

Description

The app was designed for educational purposes. It consists of 3 screens: Login, List of animes, Anime details.

Implementation details

High level

The app based on multi-module and clean architecture approaches. App divided on 4 layers: domain, use cases, presentation, frameworks and adapters.

Data layer

The app receives data from GraphQL API (AppolloGraphQL library was used). Room persistance library is using for caching purposes.

Presentation layer

App's presentation layer is based on the MVI architectural pattern which is implemented on RxJava2. There is Coordinator pattern with Jetpack Navigation Component under the hood for navigation purposes. UI is based on conductors library. Also we've integrated epoxy to display lists of data.

QA

Here are some unit tests examples for presentaion layer.

About

Sample project to learn MVI architectural pattern.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages