Description: This application is users are able to search for movies, see details for a given movie, favorite that movie, see all favorited movies.
Api references: https://developers.themoviedb.org/3/getting-started/introduction
Following things used in this project:
This project uses the Model-View-ViewModel (MVVM) architecture pattern. The app is divided into layers: the presentation layer (Activity/Fragment), the ViewModel layer, and the data layer (repository and data source). The ViewModel communicates with the data layer through a repository and provides data to the presentation layer through LiveData objects.
This project uses Retrofit to handle network requests. The API service is defined in the ApiService interface, and the API responses are mapped to Kotlin data classes using Gson.
This project uses Realm to store data locally. Realm is a mobile database that provides object-oriented data persistence, and data model is defined by the RealmObject classes, and the data access is managed by the Realm database instance.
This project uses Kotlin Coroutines for asynchronous and event-driven programming. Coroutines are used for network requests, database operations, and other long-running tasks.