It simply loads movies data from API and store it in persistence storage (i.e. Room Database). Used the Modern Android development tools - (Kotlin, Coroutines, Flow, Hilt, Architecture Components, MVVM, Room, Retrofit, Material Components).
You can Install and test OMDB Movies App from below 👇
It simply loads Movies data from API and stores it in persistence storage (i.e. Room Database). Movies will be always loaded from local database. Remote data (from API) and Local data is always synchronized. Used the Modern Android development tools - (Kotlin, Coroutines, Flow, Hilt, Architecture Components, MVVM, Room, Retrofit, Material Components).
- This makes it offline capable.
- Pagination support.
- Clean and Simple Material UI.
- It supports dark theme too.
- It supports dynamic UI view by orientation changes or devices size.
Application data are load from OMDB.
- Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous operations.
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Retrofit2 to make HTTP calls to the REST API.
- GSON to deserialize JSON requests.
- Coil for image loading.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- Android Jetpack
- Dependency Injection - dependency injection into an Android application.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
dev.shreyaspatil.foodium # Root Package
.
├── data # For data handling.
│ ├──local # Local Persistence Database. Room (SQLite) database
| │ ├── dao # Data Access Object for Room
│ ├── remote # Remote Data Handlers
| │ ├── api # Retrofit API for remote end point.
│ └── repository # Single source of data.
|
├── model # Model classes
|
├── navigator # Application navigation classes
|
├── di # Dependency Injection(Hilt)
│ └── module # DI Modules
|
├── ui # Activity/View layer
│ ├── adapter # List View Adapter / Paging Adapter
│ ├── movies # Application Features module
| │ ├── detail # Detail UI View and ViewModel
| │ └── list # List UI View and ViewModel
│ └── Activity # Feature Activity (Using single activity architecture)
|
└── utils # Utility Classes / Kotlin extensions
This app uses MVVM (Model View View-Model) architecture.
Paging implementation that uses a layered data source.
If you need any help, you can connect with me.
Email:- [email protected]