MovieLand is a full fledge Android application that provides information about millions of Movies and TvShows. You can watch Trailers & more, get ratings, cast & etc. You can Rate Movies/Shows and even create your own WatchList, Favourite List.
Click below to Install now from playstore 👇
-
This app uses The Movie Database - TMDB Api to fetch the data.
-
Clean and Simple Material UI. (UI Design is inspired from Netflix & IMDB).
-
Uses OAuth2 flow for Authentication
-
Low APK Size (only 3.2 MB).
-
This project follows the MVVM structure with Modular Architecture.
There are two modules in the project
app
- The UI of the app. The main project that forms the APK.datastore
- The REST API consumption android library
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Dagger-Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
- Retrofit - A type-safe HTTP client for Android and Java.
- Kotlin Coroutines - For asynchronous and more..
- Jetpack Navigation - Android Jetpack's Navigation component helps you implement navigation, from simple button clicks to more complex patterns.
- Jetpack Paging 3 - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
- Moshi - A modern JSON library for Kotlin and Java.
- Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
- Coil-kt - An image loading library for Android backed by Kotlin Coroutines.
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Jetpack DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs. Basically it's a replacement for SharedPreferences.