CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website.
Navigate to the root directory of this project in Terminal.
Run on terminal:
$ pod install
Open the .xcworkspace file and run
The project's architecture is MVVM-C. The MVVM presentation pattern using Coordinators to route the app.
The app is built in Features, composed by a Coordinator and Scenes. The Coordinator is responsible for a specific flow or story, so it may be responsible for one or more Scenes.
Every Scene is developed using the MVVM presentation architecture, along with a view coded layer and a service class for any network request.
The communication between the ViewController and ViewModel is done using Combine framework and a transform(input: Input) -> Output pattern described here
Every ViewController in the project inherits from ViewCodedViewController class, which uses a generic BaseView class. It's a pattern for view coding created by me and inspired by this article
During the project development Xcode 13.0 was released and I wanted to update the project to maintain it working with the latest xcode version. Then I had an issue with PixelTest framework, which it wasn't building with iOS 15. So I found this pull request which fixes it and then I had appointed to this branch in my Podfile.
I used to have a free plan in Travis and had integrated this project with Travis CI. And, also during development, my plan has expired. So I had to migrate to Github Actions. It's working and testing the project fine. But I found some limitations, which I describe in this pull request.
My integration with Codecov was working fine on Travis, but after migrating to Github Actions I couldn't make it work. For now there's not codecov badge, but you can check the project's code coverage at this section
Unit, UI and Snapshot Tests.
- 92,8%
As the CI's Xcode version is the 14.4, snapshot tests are ran on Iphone 12 Pro Max (iOS 14.4). If you run on some different device or iOS version it will probably fail. That's some downside to snapshot test, as it's described in PixeTest library documentation
A framework developed by myself to facilitate the http networking in Swift.


