Skip to content

Movies app illustrating Android development best practices with Android Jetpack using MVI architecture.

Notifications You must be signed in to change notification settings

harunagic/movies

Repository files navigation

Movies (android mobile app)

Movies app illustrating Android development best practices with Android Jetpack.

Getting Started

Android Studio IDE setup

For development, the latest version of Android Studio is required. The latest version can be downloaded from here.

This project uses the Gradle build system. To build this project, use the gradlew build command or use Build command in Android Studio.

Coding style

App uses Square coding styles. Here's how to configure it for use with Android Studio (instructions adapted from Sqaure README)

Screenshots

Screen1 Screen2 Screen3

Architecture

Model–View–Intent (MVI) is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

MVI works in a very different way compared to its distant relatives, MVC, MVP or MVVM. The role of each MVI components is as follows:

  • Model represents a state. Models in MVI should be immutable to ensure a unidirectional data flow between them and the other layers in your architecture.
  • Like in MVP, Interfaces in MVI represent Views, which are then implemented in one or more Activities or Fragments.
  • Intent represents an intention or a desire to perform an action, either by the user or the app itself. For every action, a View receives an Intent. The Presenter observes the Intent, and Models translate it into a new state.

MVVM

Repository modules handle data operations. They provide a clean API so that the rest of the app can retrieve this data easily. They know where to get the data from and what API calls to make when data is updated. You can consider repositories to be mediators between different data sources, such as persistent models, web services, and caches.

Repository patternb

Libraries

  • Retorift Used for API requests
  • Room Used for database
  • Dagger 2 Used for dependency injection
  • Glide Used for image loading
  • Navigation Handle everything needed for in-app navigation

About

Movies app illustrating Android development best practices with Android Jetpack using MVI architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages