This is a sample app based on the requirements provided
-
Architecture: This app is build using an MVVM-C architecture, and relies heavily on protocols and dependency injection
-
Testing: I have created a single sample test to demonstrate the power of dependency injection, however, much futher testing could be done if time allowed
- Catalina
- Xcode 11 +
- Swift 5
- Carthage
You will need to install Carthage if you don't already have in on your system. This is easiest with HomeBrew
- install Carthage via homebrew
$ brew install Carthage
- Framework binaries should be included with the project, however should you need to compile them locally they can be added using
$ carthage update --no-use-binaries --platform iOS
cmd + u
- Mocks and stubs are found in their respective folders within the testing target. Mocks are generated using Swift Mock Gererator. SwiftMockGeneratorForXcode