Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/radianttap/Coordinator
Implementation of Coordinators app design pattern.
https://github.com/radianttap/Coordinator
architecture design-patterns ios-lib swift
Last synced: 1 day ago
JSON representation
Implementation of Coordinators app design pattern.
- Host: GitHub
- URL: https://github.com/radianttap/Coordinator
- Owner: radianttap
- License: mit
- Created: 2016-11-23T13:07:37.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-07T08:23:21.000Z (4 months ago)
- Last Synced: 2024-07-08T11:41:21.408Z (4 days ago)
- Topics: architecture, design-patterns, ios-lib, swift
- Language: Swift
- Size: 12.1 MB
- Stars: 720
- Watchers: 24
- Forks: 44
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-from-stars - radianttap/Coordinator
- awesome-stars - radianttap/Coordinator - Implementation of Coordinators app design pattern. (Swift)
README
[![](https://img.shields.io/github/tag/radianttap/Coordinator.svg?label=current)](https://github.com/radianttap/Coordinator/releases)
![platforms: iOS|tvOS](https://img.shields.io/badge/platform-iOS|tvOS-blue.svg)
[![](https://img.shields.io/github/license/radianttap/Coordinator.svg)](https://github.com/radianttap/Coordinator/blob/master/LICENSE)
[![SwiftPM ready](https://img.shields.io/badge/SwiftPM-ready-FA7343.svg?style=flat)](https://swift.org/package-manager/)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-AD4709.svg?style=flat)](https://github.com/Carthage/Carthage)
[![CocoaPods compatible](https://img.shields.io/badge/CocoaPods-compatible-fb0006.svg)](https://cocoapods.org)
![](https://img.shields.io/badge/swift-5-223344.svg?logo=swift&labelColor=FA7343&logoColor=white)# Coordinator
Implementation of _Coordinator_ design pattern. It is *the* application architecture pattern for iOS, carefully designed to fit into UIKit; so much it could easily be `UICoordinator`.
Since this is *core architectural pattern*, it’s not possible to explain its usage with one or two clever lines of code. Give it a day or two; analyze and play around. I’m pretty sure you’ll find it worthy of your time and future projects.
## Installation
- version 7.x and up is made with Swift 5.5 concurrency in mind (async / await)
- versions before that (6.x) use closures### Manually
Just drag `Coordinator` folder into your project — it‘s only a handful of files.
If you prefer to use dependency managers, see below.
Releases are tagged with [Semantic Versioning](https://semver.org) in mind.### Swift Package Manager
Ready, just add this repo URL as Package.
### CocoaPods
[CocoaPods](https://cocoapods.org) is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate Coordinator into your Xcode project using CocoaPods, specify it in your `Podfile`:
```ruby
pod 'Coordinator', :git => 'https://github.com/radianttap/Coordinator.git'
```### Setting up with Carthage
[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.
You can install Carthage with [Homebrew](http://brew.sh/) using the following command:
```bash
$ brew update
$ brew install carthage
```To integrate Coordinator into your Xcode project using Carthage, specify it in your `Cartfile`:
```ogdl
github "radianttap/Coordinator"
```## Documentation
The _why_ and _how_ and...
- the [Pattern](documentation/Pattern.md)
- the [Library](documentation/Library.md)
- the [Class](documentation/Class.md)
- recommended [Implementation](documentation/Implement.md)## License
[MIT](https://choosealicense.com/licenses/mit/), as usual.
## Give back
If you found this code useful, please consider [buying me a coffee](https://www.buymeacoffee.com/radianttap) or two. ☕️😋