POC crypto watcher client for iOS using UIKit + SPM
SPM dependencies used are my own
The only external dependency is Snapshot testing from the guys of pointfree.
This project was built and compile on XCode 12.4.
The test API used was Bitso's public one.
- SOLID is at the heart of this development, always favoring composition over inherence (that's why you can see so many files for such a "small" project). It was lego oriented design 😁
- Use of StackViews wherever possible to laverage its flexibility and layout power.
- Break down every delegate/data source across the project in order to avoid fat classes.
MainListViewController
is the commander (sort of speak) of it all. - There are several
DataSource
classes around in order to use MVVM architecture and share them where appropiate. This way API communication never touches view model or view controller. - Dark mode support
- Github action integration: CI setup on every PR and push made against the main branch
There were tradeoffs in every major design decision behind the development. While it is true that SOLID principles are at the core of every choice made here, no peace of software is ever complete so there might be minor duplicated here and there for speeding sake. Some notes can be found across the project explaining the shortcomings of those implementations.
You might find odd for me to include this section since it looks like I'm sabotaging myself. The intention here is to acknowledge the things that, most likely due to lack of time, remain pending. Just to mention a few:
- Better error handling for network requests
- Improve code coverage
- Add more snapshot test case scenarios