I am using Jetpack Compose for building UI, as it is very helpful for large screens and handles all different screen sizes, orientations, and form factors - adaptive layout changes based on the screen space available to it, Also used Flow coroutines in most of the Use Cases to emit multiple data over a period of time.
I am using coroutine as a concurrency design pattern that you simplify code that executes asynchronously, helpful in more than one field as memory leaks and background tasks executing.
The app Module is the main part of the application whose dependencies have been injected by dagger-hilt classes implementation, also control how long these class will live and instance creation. also, I am using coinpaprika as a remote data source for status live data and a retrofit library for handling all requests and responses with network connections.
In this project, I am counting on Use Case as a single action with a single feature to Use a repository to access API data and then forward the information to the ViewModel.
Get the app -alpah-version