An application where you can discover popular, top-rated, and upcoming movies. The application has search functionality. You can use it and find your desired movie. By clicking on your desired movie you'll get detailed information.
In order to use the application you need to sign up and generate an API key following the instructions here.
To use the application with production build, you need to generate a keystore file "keystore.jks" in the "key" folder and add the corresponding values in "keystore.properties" file.
There are the following screens in the app:
- PopularMovies
- UpcomingMovies
- TopRatedMovies
- SearchMovies
- MovieDetails
TMDB API is used for getting the movies. After opening the application user will see popular movies in the screen. Using the bottom navigation view, user can navigate between popular -> upcoming -> top_rated -> search screens. Every time we fetch movies, the first page needs to be saved in the memory for the offline view. On clicking every movie corresponding movie details should be shown to the user. If some error will occur corresponding error message will be shown to the user.
The application architecture is MVVM with some MVI style (MVVMI). The following libraries and components were used in the app:
- Dagger Hilt for the dependency injection
- Retrofit and Coroutines for the network calls
- Room with Coroutines for the offline caching
- Glide for the image loading
Thank you for your provided time if you read until this section. Special thanks to the creators of the app, I mean me :) If you'll have some questions, don't hesitate and ask in StackOverFlow. All rights reserved... Maybe :D