FlowCoordinator.md

December 26, 2022 ยท View on GitHub

Upgrade routing

  1. Create MainFlowCoordinator.swift file inside exmpl folder in exmpl project
  2. Add implementation
import UIKit

final class MainFlowCoordinator {

    private weak var window: UIWindow!
    private weak var rootViewController: UIViewController!

    init(window: UIWindow) {
        self.window = window
    }

    func start() {
        let mainViewController = MainModuleBuilder().build()
        window.rootViewController = mainViewController
        self.rootViewController = mainViewController
    }
}
  1. Open SceneDelegate.swift
  2. Add property
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
// ...

private var flowCoordinator: MainFlowCoordinator!
  1. Update scene function
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }
    let window = UIWindow(windowScene: windowScene)
    self.window = window
    window.makeKeyAndVisible()

    flowCoordinator = MainFlowCoordinator(window: window)
    flowCoordinator.start()
}

Next: Add ModuleOutput