/Reminders

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

Primary LanguageSwiftMIT LicenseMIT

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