Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tiagomartinho/Reminders
An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS
https://github.com/tiagomartinho/Reminders
clean-architecture clean-code ios swift tdd
Last synced: about 1 month ago
JSON representation
An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS
- Host: GitHub
- URL: https://github.com/tiagomartinho/Reminders
- Owner: tiagomartinho
- License: mit
- Created: 2017-12-09T16:48:36.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-01T10:18:33.000Z (about 6 years ago)
- Last Synced: 2024-08-03T17:18:54.917Z (4 months ago)
- Topics: clean-architecture, clean-code, ios, swift, tdd
- Language: Swift
- Homepage:
- Size: 180 KB
- Stars: 313
- Watchers: 7
- Forks: 27
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- fucking-open-source-ios-apps - Reminders
README
# 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](https://developer.apple.com/documentation/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