This is a coding challenge to illustrate how to use clean code architecture to develop multi-module app. It displays Mdb movies in different layout using compose, compose navigation, MVVM, Clean code, Dagger-Hilt dependancy injection, retrofit2, coroutines, flow and other tools and libraries
#Sample UI
This project uses many of the popular libraries, plugins and tools of the android ecosystem.
-
- Material - Build Jetpack Compose UIs with ready to use Material Design Components.
- Foundation - Write Jetpack Compose applications with ready to use building blocks and extend foundation to build your own design system pieces.
- UI - Fundamental components of compose UI needed to interact with the device, including layout, drawing, and input.
- Lifecycle-ViewModel - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- Navigation - Navigation in compose
-
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- ViewModel - Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
- Room - Provides an abstraction layer over SQLite used for offline data caching.
-
Dagger Hilt - Dependency Injection library.
-
Retrofit - Type-safe http client and supports coroutines out of the box.
-
OkHttp-Logging-Interceptor - Logs HTTP request and response data.
-
Flow - Flows are built on top of coroutines and can provide multiple values. A flow is conceptually a stream of data that can be computed asynchronously.
-
Material Design - Build awesome beautiful UIs.
-
Coroutines - Library Support for coroutines,provides runBlocking coroutine builder used in tests.





