Releases: erikdrobne/SwiftUICoordinator
Version 2.2.0
New features
RootCoordinator
#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 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: 2.1.1...2.2.0
Version 2.1.1
New features
NavigationController
- #22 Add the
isNavigationBarHidden
parameter to theNavigationController
initializer that indicates whether the navigation bar should be hidden on the created instance.
Changes
- Updated code docs
- New unit tests
Full changelog: 2.1.0...2.1.1
Version 2.1.0
New features
NavigationRoute
- Added
attachCoordinator
property
/// A property that indicates whether the Coordinator should be attached to the View as an EnvironmentObject.
var attachCoordinator: Bool { get }
- Added
appearance
property
/// A property that provides the info about the appearance and styling of a route in the navigation system.
var appearance: RouteAppearance? { get }
DeepLinkHandling
- Added
DeepLinkHandling
protocol - Added
func handle(_ deepLink: DeepLink, with params: [String: String])
to theCoordinator
Changes
Full changelog: 2.0.0...2.1.0
Version 2.0.0
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:
/// Essential actions.
public enum Action: CoordinatorAction {
case done(Any)
case cancel(Any)
}
-
Added
func handle(_ action: CoordinatorAction)
to theCoordinator
protocol.
It takes an action parameter and handles the specificCoordinatorAction
. -
Added
func remove(coordinator: Coordinator)
to theCoordinator
protocol with the default implementation.
It takes aCoordinator
as a parameter and removes it from the child's list.
Changes
- Removed
func navigate(to route: NavigationRoute)
from theCoordinator
protocol. - Removed
func finish()
from theCoordinator
protocol. Coordinator
is not conforming toNSObject
anymore.- Updated documentation.
- Updated unit tests.
Version 1.3.0
Changes:
- Added support for custom view transitions ✨
- Improved error handling
- Added unit tests
- Updated Readme
Version 1.2.1
- Updated Example project
- Updated Readme
Version 1.2.0
- Added
NavigatorError
that defines possible navigation errors that might happen. - The
start()
andshow(route: Route)
methods are now throwing, enabling improved error handling.
Version 1.1.1
- Removed completion handler from
dismiss(animated: Bool)
method body - Minor bug fixes
Version 1.1.0
- Added
navigate(to route: NavigationRoute)
method toCoordinator
- Removed the
CoordinatorNavigation
protocol - Added Github Actions workflow
- Updated Example app
- Updated README
Version 1.0.0
Initial release.