A Sample project that shows the popular movie list from source feature of 500px which using the 500px API built using modern Android development strategies focusing on the following key aspects:
- Code structuring as per clean Architecture
- Using MVVM/MVI Pattern as per Google's recommendation
- Android Architecture Components (LiveData, ViewModel, Navigation)
- Kotlin features (Lambdas, Extension functions, typealias, sealed class and Coroutines)
- Search the Movies by Name
- Show the List of Suggested Movies
- Show the Details of Movie by Tapping on that.
Navigation between the screens has been done using the Jetpack Navigation library and the following is its nav graph:
Libraries The App uses libraries and tools used to build Modern Android application, mainly part of Android Jetpack
- Kotlin first
- Clean Architecture
- Coroutines Flow API
- Android Architecture Components
- Retrofit2 for Networking
- OkHttp3 for Networking
- Glide for image loading
- Hilt for dependency injection
- Navigation Component for App Navigation
- Android KTX features
- MockK for unit testing
The app can be further improved with the addition of the following features
- Adding Level 2 implementation
- Build UI tests
- Start blog series