What's done:
-
Async bitcoin rates retrieval
-
MVP structure
-
RX integration
-
Options for different time periods
-
One graph renderer class and one prototype
-
One GraphView that can by stylized
-
Rendering supports touch events
What I didn't do, but would like to see in a production ready class:
-
State saving of the renderer
-
Offline cache of rates and results
-
Limits to zoom and translations
-
Separate geometry for Labels and graphs
-
Better error handling
-
Base activity with all needed methods
-
Animations for bars loading and appearing
-
Integration tests for repo methods
IMO all that is easily done with the current architecture and more time. Personal learnings for me - RX is helpful for quick setup of an ASYNC pipeline. Got better understanding of Canvas class and Android API rendering. Honestly - OpenGL seems more robust and just as painful to setup.