Android App Querying TMDb API to provide information on popular, trending, upcoming movies from The Movie DB having selective date filter as well.
-
Obtain Key
Create an account with TMDB to obtain an API key. Read Get Started for more details.
-
Configure build.gradle
Once you have your TMDB key,you will need to add it in the
app
modulebuild.gradle
. Change the following line with your own API key and sync the project.buildConfigField "String", "API_KEY", '"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"'
- Latest movies information.
- Endless Scrolling (Pagination based on themoviedb.org api data)
- Movie details (e.g. Backdrop Poster, Rating, Genres, Release Date, Overview)
- Trailer Video for Youtube
- Upon launching, app automatically fetches first page containing 20 movies.
- Scrolling to bottom causes app to fetch next page and new movies are appended in the list automatically.
- Tapping on Filter button will show a Date Picker, which can be used to filter movies on basis of release date.
- After selecting the date and taping on Ok button, will cause app to fetch the movies from the API for that date, along with pagination feature.
- Upon selecting any movie from the list will open movie detail page.
- Movie detail page will show, movie backdrop poster, name, rating, genres and overview.
- Tapping on the Trailer button will go to the pre-installed Youtube app for the trailer.
- Detail screen is collapsing, scrolling it up will hide the backdrop image.
- MVVM for project architecture.
- Kotlin Coroutines concurrency design pattern to safely call network operations.
- Dagger 2 for implementing dependency injection
- Retrofit - Http Client for Api Calls
- Moshi - Serialization/Deserialization Library
- Okhttp - An HTTP+HTTP/2 client for Android
- Picasso - Image Loading Library
- Mockito - Mocking Framework for Unit Testing
- Architecture Components - LiveData, Databinding, ViewModels
- Unit test for the ViewModels
- Instrumental test for Splash screen
- Ali Ansari - (https://www.linkedin.com/in/ali-ansari-pingo/)
This project is licensed under the MIT License - see the LICENSE.md file for details