https://github.com/sergio11/movieaddicts
A simple project to demonstrate an approach based on MVI + Clean architecture and modularization based on features and layers
https://github.com/sergio11/movieaddicts
coroutines coroutines-flow dagger2 firebaseauth firestore jetpack-android jetpack-navigation mvi-android mvi-clean-architecture objectbox retrofit2
Last synced: 10 months ago
JSON representation
A simple project to demonstrate an approach based on MVI + Clean architecture and modularization based on features and layers
- Host: GitHub
- URL: https://github.com/sergio11/movieaddicts
- Owner: sergio11
- License: mit
- Created: 2021-01-23T11:40:21.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-12-17T19:44:11.000Z (over 3 years ago)
- Last Synced: 2025-04-01T16:21:27.283Z (about 1 year ago)
- Topics: coroutines, coroutines-flow, dagger2, firebaseauth, firestore, jetpack-android, jetpack-navigation, mvi-android, mvi-clean-architecture, objectbox, retrofit2
- Language: Kotlin
- Homepage:
- Size: 22.7 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Movie Addicts
A simple project to demonstrate an approach based on MVI + Clean architecture and modularization based on features and layers
[](https://youtu.be/0wV9Mmp7_Ik)
## Organization and structure of the application
## Tech stack & Open-source libraries
- Minimum SDK level 23
- 100% [Kotlin](https://kotlinlang.org/) based + [Coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- JetPack
- LiveData - notify domain layer data to views.
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Architecture
- Modularization by features and Layers
- MVI UI Architecture ( Event + State + Effect)
- Clean architecture approach with repository pattern
- Dagger 2 - dependency injection
- UI
- DataBinding - Android DataBinding kit for notifying data changes to UI layers.
- Material Design Components
- Design based on Constraint Layout
- Ripple animation, Shared element transition
- Persistence
- [Retrofit2 & Moshi](https://github.com/square/retrofit) - constructing the REST API
- [OkHttp3](https://github.com/square/okhttp) - implementing interceptor, logging and mocking web server
- [Glide](https://github.com/bumptech/glide) - loading images
- [ObjectBox](https://github.com/objectbox) - The superfast NoSQL database for implementing a local cache layer.
- Cloud Firestore - To persist users' favorite movies.
- Firebase Auth - To authenticate users
## Screenshots
### Login
### Movies
### Tv Series
### Stars

## MAD Score

## Visitors Count

## Please Share & Star the repository to keep me motivated.