An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS.
The idea is to implement the simplest To-Do List app. The user can add a Reminder with a Title and visualize the existing Reminders in a list.
- macOS 10.13 or higher
- Xcode 9.2 or higher
To compile/run the iOS application:
- open the Xcode Project "Reminders.xcodeproj"
- select the "Reminders" iOS scheme
- Run by pressing "Play" or by pressing [Cmd + R]
We use XCTest for the Unit and UI tests.
To run the tests for the iOS application:
- open the Xcode Project "Reminders.xcodeproj"
- select the "Reminders" iOS scheme
- Run by pressing "Product" > "Test" or by pressing [Cmd + U]
- Use a Mocking framework to remove Mocks and Spies in tests
- Use a Dependency Injection framework to improve ViewControllerFactory and ControllerRouterFactory
- Refactor RemindersEndToEndTest
- Refactor RemindersPresenterTest
- Refactor AddReminderPresenterTest
- Extract business logic in Presenters into Use Cases
- Remove Route dependency in ControllerFactory
- Replace conditional in AppRouter