This is the second project of the Udacity's Android Nanodegree, that is basically an Android application that consumes the services exposed by TMDb.
- MVP
- Dagger 2.x
- Kotlin
- RxJava
- Retrofit
- And so on
Split the responsabilities. When you follow an architecture pattern, I's easier to understand the flow of information, the responsabilities of each class/object, to maintain the code and test.
The application was divided into four tabs:
-
✅ Home - The default tab of the application
- ✅ List of the first twenty movies ordered by popularity;
- ✅ List of the first twenty movies ordered by rating;
- ✅ Option to see all movies ordered by popularity (infinite scroll);
- ✅ Option to see all movies ordered by rating (infinite scroll);
-
✅ Browse - Tab to the user search for new movies
- 🔜 Filter by genre
- ❌ More filters...
-
✅ Cinema
- ✅ List of the movies in theaters
- 🔜 Show the upcoming movies
-
✅ Favorite
- ✅ List your favorite movies
- 🔜 Option to select the sorted by (added order, release date)
-
✅ Movie detail screen
- ✅ Show the backdrop and poster;
- ✅ Show the user's average rating;
- ✅ Show the first two reviews;
- ✅ Show all reviews;
- ✅ Show the first two trailers;
- ✅ Show all trailers;
- ✅ Option to favorite the movie;
- ✅ Show the cast;
- ✅ Show recommendations (of movies, based on the movie you are seeing);
To build/run this project, you I'll need Android Studio 3.0.
Besides, you need to create a TMDb account and get an API key.
Then, with your API key in hands, just create a gradle.properties
file on root folder, and add the following line:
API_KEY = "YOUR_API_KEY"
Some screenshots: