https://github.com/chnouman/decadeofmovies
A simple app to show case Master detail application for Movies
https://github.com/chnouman/decadeofmovies
android android-architecture databinding espresso glide jetpack jetpack-lifecycle-components koin-kotlin mvvm-android retrofit retrofit2 rxjava3
Last synced: 8 months ago
JSON representation
A simple app to show case Master detail application for Movies
- Host: GitHub
- URL: https://github.com/chnouman/decadeofmovies
- Owner: chnouman
- Created: 2021-05-30T05:39:41.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-31T17:51:51.000Z (about 5 years ago)
- Last Synced: 2025-04-03T11:21:16.570Z (about 1 year ago)
- Topics: android, android-architecture, databinding, espresso, glide, jetpack, jetpack-lifecycle-components, koin-kotlin, mvvm-android, retrofit, retrofit2, rxjava3
- Language: Kotlin
- Homepage:
- Size: 4.99 MB
- Stars: 28
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Decade of Movies App
Demo Application to understand the architecture of MVVM App with Unit tests
## Build Instructions ##
The [gradle build system](http://tools.android.com/tech-docs/new-build-system/user-guide) will fetch all dependencies and generate
files you need to build the project. After this select device and run it.
You can use [Android Studio](http://developer.android.com/sdk/installing/studio.html) by importing the project as a Gradle project.
## Directory structure ##
`|-- base # base module (contains providers and streamer)
| |-- build.gradle # base build script
| `-- src
| |-- main
| |-- assets # base module assets
| |-- java # base module kotlin code
| `-- res # base module resources
## Features :
- Using MVVM (Model-View-ViewModel) Architecture
- Using Room Persistence for local database
- Using Koin for Dependency Injection (ViewModels, WebService and Preferences)
- Using Retrofit to request api network
- Using Glide for loading image from url
- Using RxJava3 for Threading
- Using JUnit4 with Mockito to write Unit tests
- Using JUnit4 with Espresso for UI Testing
## Dependencies :
- [Lifecycle & Livedata](https://developer.android.com/jetpack/androidx/releases/lifecycle)
- [Navigation Component](https://developer.android.com/jetpack/androidx/releases/navigation)
- [Retrofit 2](https://square.github.io/retrofit/)
- [RxJava3](https://github.com/ReactiveX/RxAndroid)
- [Glide](https://github.com/bumptech/glide)
- [Koin](https://github.com/InsertKoinIO/koin)
- [AndroidX](https://mvnrepository.com/artifact/androidx)
- [Espresso](https://github.com/android/testing-samples)
## Author
[**M Nouman**](https://www.linkedin.com/in/chnouman/)