This repository contains the Technical Test for Apps Developer from Badi.
This code follows the Ray Wenderlich Swift Style Guide.
This project follows the MVVM (Model View ViewModel) architecture with repositories and use cases, at the presentation layer. ViewModel are where the view business logic is added. A ViewModel only communicates with repositories and view controllers. We are using the delegate pattern to communicate with view controllers and closures, reactive binding can also be added as a future enhancement.
Testing is done with the help of protocols. Also both the network and model layer are unit tested and integration tests have been added. All test will be executed (including the frameworks when executing RecipePuppyTests target. Testing at presentation layer can be improved adding UI tests and some sort of integration tests. There's also left to do the CI setup.
Branching strategy follows GitFlow
This projects make use of the following dependencies through Swift Package Manager
In order to ran this app open RecipePuppy.xcworkspace, choose RecipePuppy scheme and press run (cmd+R) either with a test device or an iPhone simulator (Minimum deployment target is iOS13)