Android sample app with Arch Components and Kotlin Coroutine Support. Using a simple api (Nomics Api: https://nomics.com/) wanted to use build a sandbox Android application that allowed me to test out new features and libraries.
Application is split into two main features as of 6/5/19.
These features are implemented using modular desing with clean architecture. However, they are down slightly different to compare two current implementations of this app design approach.
The price feature is implemented using different modules for each layer of Clean Architecture.
The app layer hosts the fragments, adapters, layout resources and view models for a feature. This could also be split out into a smaller android library for the Prices features ui only. However, as it currently stands this is lumped into the main app module. The domain layer hosts the use cases, repository interfaces, and the entity models. The data layer is where the repository implementation is defined and where the data logic is placed. The repo can call either a local or remote data source here.
The news feature is implemented using a single module to host the entire Clean Architecture structure. Inside that module are different packages to define which part we are working in (data, domain, ui). Each section is similar to how the price feature is set up in different modules. Still allows the ability to test each layer individually if desired by setting up tests in that android library. Can isolate the tests to that specific module. Separates features into vertical slices.
Structure is currently two components: Application Component which contains all the dependencies for