Basically I used a mixed MVVM - Flux approach, because it perfectly fits for thin-clients like this application and Room+RxJava works perfectly as the dispatcher. The application separated into 4 modules. The domain module holds the models required for the presentation layer, the data module handles the data flow, the common module contains the base classes and common bindings and the app module holds the presentation layer.
In order to use application you have to provide your own API key. You can get it from the Pipedrive website by creating a free trial account.
When you obtain the keys, you can provide them to the app by creating a config/keys.properties
file with the following content:
pipedriveApiKey=<insert>
- Tests
- Feature modules
- Mock flavour