CoordinatorPlus
A protocol-oriented approach to the Coordinator app architecture pattern.
Installation
CoordinatorPlus is distributed using the Swift Package Manager. To install it into a project, add it
as a dependency within your Package.swift
manifest:
let package = Package(
...
dependencies: [
.package(url: "https://github.com/richardpiazza/CoordinatorPlus.git", from: "0.3.0")
],
...
)
Then import the CoordinatorPlus packages wherever you’d like to use it:
import CoordinatorPlus
Why the ‘Protocol-Oriented’ approach?
Many projects use this architecture pattern, and each have a slightly different implementation.
Implementing the architecture through protocols and protocol extensions allows for simple implementations with minimal need to customize
the handling and presentation of Coordinators & View Controllers.
This reduces the differences on a project-by-project basis and improves the comprehension and understanding of all those who interact with
the framework.
Features
The primary classes to note are:
AppCoordinator
Flow
FlowCoordinator
FlowCoordinatorDelegate
All of the other files fall outside of what someone could consider a standard Coordinated MVC architectural pattern. The purpose of these
files is to provide default/sample implementations for specific use cases when used on a UIKit
platform. This implement is rather
opinionated.
References
Heavily influenced by Josh Sullivan’s article and example project
BeyondViewControllers.
CoordinatorPlus
A protocol-oriented approach to the Coordinator app architecture pattern.
Installation
CoordinatorPlus is distributed using the Swift Package Manager. To install it into a project, add it as a dependency within your
Package.swift
manifest:Then import the CoordinatorPlus packages wherever you’d like to use it:
Why the ‘Protocol-Oriented’ approach?
Many projects use this architecture pattern, and each have a slightly different implementation.
Implementing the architecture through protocols and protocol extensions allows for simple implementations with minimal need to customize the handling and presentation of Coordinators & View Controllers.
This reduces the differences on a project-by-project basis and improves the comprehension and understanding of all those who interact with the framework.
Features
The primary classes to note are:
AppCoordinator
Flow
FlowCoordinator
FlowCoordinatorDelegate
All of the other files fall outside of what someone could consider a standard Coordinated MVC architectural pattern. The purpose of these files is to provide default/sample implementations for specific use cases when used on a
UIKit
platform. This implement is rather opinionated.References
Heavily influenced by Josh Sullivan’s article and example project BeyondViewControllers.