Cineast is an android app querying TMDb API to provide information on popular, trending, upcoming, top rated movies and popular actors. Cineast comes in with sharing, searching features, when signed in a user can add movies to their Favorites and watch lists or rate them.
This Android App is a clone of the iOS Cineast App which uses TMDb API as well.
Create an account with TMDB to obtain an API key.
On obtention of your TMDB key, you will need to add it to a global gradle.properties file so as not to add it to version control and expose your key and configure the projects app module build.gradle to reflect the name you gave your API Key. To add the newly obtained key to a global gradle.properties:
- In the roots folder of the project, add a txt file named
apikeys.properties
- then inside the file add a property
api_key = TMDb API KEY
.
On completion of the above steps, the app will be able to pick up your TMDb API KEY.
This Application makes use of clean Architecture, hence the project is divided into the following packages:
- Cache
- Data
- Domain
- Remote
- Presentation
For more details on Clean Architecture, check out the following links:
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
https://github.com/LostInIreland/Flutter-Clean-Architecture
https://github.com/bufferapp/android-clean-architecture-boilerplate
This blog post explains the basics of modularization and its benefits.
This app uses the MVVM architecture.
Room ORM which is part of Android Architecture Components is used.
Coroutines are used for async/background. This blog post explains the basics of Coroutines in kotlin.
Leak Canary - Capture Memory Leaks
Retrofit - Http Client for Api Calls
Gson - Serialization/Deserialization Library
Okhttp - An HTTP+HTTP/2 client for Android
Picasso - Image Loading Library
Kodein - Dependency Injection Library
Architecture Components - Room ORM
Coroutines - Coroutines