Hello, can you explain in more details the difference in the init method between onboardingViewControllerFactory and LaunchViewController from 74 page. What is the difference? Why not to use method like makeLaunchViewController in case of onboardingViewController? It is not clear for me why to use this escaping closure instead. LaunchViewController and OnboardingViewController are all have transitive dependencies.
// Closure that creates an OnboardingViewController
@escaping () -> OnboardingViewController,
// Closure that creates a SignedInViewController
@escaping (UserSession) -> SignedInViewController)
In the book you mentioned that it is important to give object under construction the ability to create multiple instances of dependencies from outside - to invoke a factory method multiple times. But why should we do this? According to project - MainViewController is initialized once and no new OnboardingViewControlled are needed in this case. Please clarify this problem.