MovieAppClean is a demo application based on modern Android application tech-stacks and Clean architecture.
Fetching data from the network via repository pattern.
Notice : For the application to fetch data navigate to the app level Build.gradle file found here(MovieAppCLean/app/) and replace "YOUR_API_KEY" with your api key from tmdb website(https://www.themoviedb.org)
- Minimum SDK level 21
- Kotlin based + Coroutines for asynchronous.
- JetPack
- Kotlin flows - notify domain layer data to views.
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository pattern
- Hilt - dependency injection.
- Retrofit2 & Gson - construct the REST APIs.
- OkHttp3 - implementing interceptor, logging and mocking web server.
- Coil - loading images.
- ShimmerLayout - an Android library that provides an easy way to add a shimmer effect to any view in your Android app.
- Material-Components - Material design components like ripple animation, cardView.
- PagingLibrary-V3 - fetch paged data .
MovieAppClean is based on Clean architecture and a repository pattern.