#Clean Architecture App made with the Chuck Norris API - https://api.chucknorris.io/.
Using "Clean Architecture" based on Antonio Leivas and BufferApp implementations.
In this module, you will find all models (entities)
In this module, you will find all Android classes and UI.
In this module you will find all the interfaces/datasources, apis and repos.
Where all offline data writing occurs, this module depends on Android due the use of Room for this writing. It also uses a mapper to convert the Room entity into application entity.
In this module you will find all usecases / iteractors.
Created in order to avoid inserting/injecting Android dependencies into the data module. Hence, the data module has an interface to be implemented on cache
Maps up the Room @Entity at the cache module and passes it into the application entity. Hence avoiding @Entity to go thru non Android modules.
Used for dependency injection (easy to use and fulfills all requirements here).
Using Bitrise.io for this purpose.
Tests written for the modules: app, cache, data and usecases.
In this module are tested ViewModels and Activities. In the FactsActivityTest we can verify if the text length at the RecyclerView respects the length logic from the source and if the category is being set to UNCATEGORIZED. In SearchActivityTest, we can verify if there are duplicated values from recent searches at RecyclerView
Here we test the write and retrieve actions for the data in Room.
Here we test all repos.
Here we test all usecases