An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Reminders.xcodeproj Enable code coverage Oct 3, 2018
Reminders Route to Add Reminder from empty Window Dec 1, 2018
RemindersCore Format code Dec 1, 2018
RemindersCoreTests Format code Dec 1, 2018
RemindersTests Route to Add Reminder from empty Window Dec 1, 2018
RemindersUITests Format code Dec 1, 2018
.gitignore Add gitignore Dec 9, 2017
LICENSE Add License Dec 11, 2017
README.md Update README Oct 3, 2018

README.md

Reminders iOS

An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS.

Idea

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.

Requirements

  • macOS 10.14 or higher
  • Xcode 10 or higher

Installation

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]

Tests

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]

Possible Improvements

  • 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