Rijksmuseum API client
- Get an API Key from the Rijksmuseum API page
- Add API Key into
local.properties
withapiKey
as the variable name.apiKey="<API_KEY>"
- Build the app
The app uses a combination of the repository pattern
and MVI (Model-View-Intent)
to keep the code clean, readable, and maintainable.
- Repository Pattern - to have a clear separation between the
UI
and theData
layer - MVI (Model-View-Intent) - Reactive way in managing UI states. Decouples the UI logic from the UI rendering to keep the views passive. It is also easier to test since we only need to test the
action
and it should return astate
. - Uses Kaskade to simplify the MVI Pattern
- Offline Mode - uses
OkHttp cache
. Caches responses and uses them when network is not available
- State - Model that represents the ouput
- Action - Model that represents the input
- Result - Reduces action and state to a new state. Paired with an action to determine new state.
Side effects should only happen when:
- a user executes an
Action
ActionHandler
- usually get the data from repositoryRender
- updates the UI from the emitted state