This android app is a work-in-progress (SPOILER: bugs
The goal of this project is to build a robust, useful app which follows Material Design principles and could scale to a larger team and / or user-base. As such, the focus is more on architecture, process and "testability" than on being fully-featured.
###Technologies / techniques used
- Model-View-Presenter architecture in order to ensure clean separation of concerns as much as possible and to facilitate as much unit-testing (without instrumentation) as possible.
- Dagger 2 for dependency injection to assist with separation of concerns, aid testability and avoid the referencing of Android
Contextobjects in Presenter code.
- Google Maps Android API v2 to display crimes on the map and the Clustering utility library to prevent the map getting too cluttered with pins
- Butterknife for easy view binding
- Retrofit for type-safe querying of the Police API.
- Mockito for the mocking and stubbing required for good unit tests.
- Mock Web Server for testing API client functionality, particularly concerning issues such as timeouts,
- More to come, probably - as mentioned, this is still WIP so some more techniques and technologies will be added as I go along.