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
Failed to load latest commit information.
Reminders.xcodeproj Enable code coverage Oct 3, 2018
Reminders Format code Oct 3, 2018
RemindersCore Rename View into Route Dec 15, 2017
RemindersCoreTests Rename View into Route Dec 15, 2017
RemindersTests Format code Oct 3, 2018
RemindersUITests Format code Dec 10, 2017
.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