MovieD is a beautiful looking Movie list based project to showcase the Android Architecture components. It implements:-
- the MVVM pattern
- DI using Koin
- using Coroutines to make network calls with the help of Retrofit
- serves and maintains the data using LiveData
- navigation across the app happens after harnessing the power of the Navigation component, also showcasing how to achieve shared element transition using Navigation component
Most other examples of the Architecture components that I could find on GitHub were mostly a little too easy or a little too complex, here comes MovieD which maintains a fine balance of both. I have tried to keep it simple yet not too simple. I will be glad if even one persons gains something out of this! If you like it, please leave a ⭐ 😁
The main features illustrated in this project are :-
- MVVM Architecture
- How a ViewModel can survive configuration changes
- Dependency Injection using KOIN
- How LiveData works
- Simple Navigation component
- Advanced Navigation component (Shared element transition)
- Coroutines basic
To successfully run this project, you would need an API key
which you can easily get from here. Once you have obtained the API key
please create a file named ApiKey.kt
at the path :-
/app/src/main/java/com/zebrostudio/movied/utils/ApiKey.kt
and declare a field const val API_KEY = <Your API key here>
And you should be good to go!
A big thanks to TMDB for providing the amazing API from where the movies are sourced.
The UI was inspired from this awesome design on Dribble
Android Developer with 2 years of experience in building apps that look and feel great. Enthusiastic towards writing clean and maintainable code. Open source contributor.