The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Version 2.3.2
2 weeks ago
## New features
### Custom modal transitions
[#32](https://github.com/erikdrobne/SwiftUICoordinator/pull/32) Introducing the ability to create custom modal transitions, providing a unique way to `present` and `dismiss` views.
## Changes
- Updated example project
- Updated docs
Version 2.3.1
2 weeks ago
## Changes
- [#31](https://github.com/erikdrobne/SwiftUICoordinator/pull/31) `makeNavigationDelegate` method returns non-optional `NavigationControllerDelegateProxy`.
- [#30](https://github.com/erikdrobne/SwiftUICoordinator/pull/30) Updated and improved code docs.
Version 2.3.0
3 weeks ago
## New features
### Coordinator
[#24](https://github.com/erikdrobne/SwiftUICoordinator/pull/24) Separated coordinator deep link handling into the `CoordinatorDeepLinkHandling` protocol.
### Transitionable
[#25](https://github.com/erikdrobne/SwiftUICoordinator/pull/25) Refactored the `Transition` protocol.
Introduced a `TransitionProvider` class that holds an array of transitions, ensuring they are retained in memory as long as needed.
### NavigationControllerDelegateProxy
[#26](https://github.com/erikdrobne/SwiftUICoordinator/pull/26) Decoupled `UINavigationControllerDelegate` from `NavigationController` into the `NavigationControllerDelegateProxy` object.
### Logger
[#28](https://github.com/erikdrobne/SwiftUICoordinator/pull/28) Refactored coordinator log categories: `deep_link` & `coordinator` into `DeepLink` & `Coordinator`
## Changes
- Added SwiftLint rules
- Added new unit tests
- Updated docs
**Full changelog: https://github.com/erikdrobne/SwiftUICoordinator/compare/2.2.0...2.3.0**
Version 2.2.0
7 weeks ago
## New features
### RootCoordinator
[#23](https://github.com/erikdrobne/SwiftUICoordinator/pull/23) Added `RootCoordinator` class which serves as the top-level coordinator in the application's coordinator hierarchy. It initializes the main window and navigation controller, manages child coordinators, and registers transitions.
### WeakCoordinator & WeakTransition
[#23](https://github.com/erikdrobne/SwiftUICoordinator/pull/23) Use weak reference objects when storing child coordinators and transitions into a collection to avoid runtime errors such as dangling pointers.
## Changes
- Improved Example project (`AppCoordinator`, `DependencyContainer`, `CoordinatorFactory`,...)
- Updated docs
- Updated unit tests
**Full changelog: https://github.com/erikdrobne/SwiftUICoordinator/compare/2.1.1...2.2.0**
Version 2.1.1
9 weeks ago
## New features
### NavigationController
- [#22](https://github.com/erikdrobne/SwiftUICoordinator/pull/22) Add the `isNavigationBarHidden` parameter to the `NavigationController` initializer that indicates whether the navigation bar should be hidden on the created instance.
## Changes
- Updated code docs
- New unit tests
**Full changelog: https://github.com/erikdrobne/SwiftUICoordinator/compare/2.1.0...2.1.1**
Version 2.1.0
9 weeks ago
## New features
### NavigationRoute
[#19](https://github.com/erikdrobne/SwiftUICoordinator/pull/19)
- Added `attachCoordinator` property
```Swift
/// A property that indicates whether the Coordinator should be attached to the View as an EnvironmentObject.
var attachCoordinator: Bool { get }
```
[#18](https://github.com/erikdrobne/SwiftUICoordinator/pull/18)
- Added `appearance` property
```Swift
/// A property that provides the info about the appearance and styling of a route in the navigation system.
var appearance: RouteAppearance? { get }
```
### DeepLinkHandling
[#17](https://github.com/erikdrobne/SwiftUICoordinator/pull/17)
- Added `DeepLinkHandling` protocol
- Added `func handle(_ deepLink: DeepLink, with params: [String: String])` to the `Coordinator`
## Changes
- Updated code documentation [#20](https://github.com/erikdrobne/SwiftUICoordinator/pull/20)
- Improved logging [#20](https://github.com/erikdrobne/SwiftUICoordinator/pull/20)
- New unit tests
- Minor changes [#16](https://github.com/erikdrobne/SwiftUICoordinator/pull/16)
- Updated Readme
**Full changelog: https://github.com/erikdrobne/SwiftUICoordinator/compare/2.0.0...2.1.0**
Version 2.0.0
18 weeks ago
## New features
- Added `CoordinatorAction` type which should define all the available actions for the coordinator.
- There are two basic actions for either canceling or finishing the flow:
```Swift
/// Essential actions.
public enum Action: CoordinatorAction {
case done(Any)
case cancel(Any)
}
```
- Added `func handle(_ action: CoordinatorAction)` to the `Coordinator` protocol.
It takes an action parameter and handles the specific `CoordinatorAction`.
- Added `func remove(coordinator: Coordinator)` to the `Coordinator` protocol with the default implementation.
It takes a `Coordinator` as a parameter and removes it from the child's list.
## Changes
- Removed `func navigate(to route: NavigationRoute)` from the `Coordinator` protocol.
- Removed `func finish()` from the `Coordinator` protocol.
- `Coordinator` is not conforming to `NSObject` anymore.
- Updated documentation.
- Updated unit tests.
Version 1.3.0
25 weeks ago
Changes:
- Added support for custom view transitions ✨
- Improved error handling
- Added unit tests
- Updated Readme
Version 1.2.1
29 weeks ago
- Updated Example project
- Updated Readme
Version 1.2.0
30 weeks ago
- Added `NavigatorError` that defines possible navigation errors that might happen.
- The `start()` and `show(route: Route)` methods are now throwing, enabling improved error handling.