-
Notifications
You must be signed in to change notification settings - Fork 0
Patterns
An object responsible for setting the project up:
- Tab bar
- Onboarding
This method setup tab bar controller with 3 modules and set root view controller for the UIWindow
In addition to it, it opens Onboarding module, if user has not onboarded yet.
Assembles "Onboarding" module, if it was called from start
method, described above
It also conforms to OnboardingModuleOutput
protocol to dismiss "Onboarding" module when it will be the time
extension AppCoordinator: OnboardingModuleOutput {
func onboardingModuleDidFinish() {
tabBarController.presentedViewController?.dismiss(animated: true)
}
}
func createNavController(viewController: UIViewController, itemName: String, itemImage: UIImage?) -> UINavigationController
Creates UINavigationController
instance with provided data.
itemName
and itemImage
properties will be set up as UITabBarItem
Class responsible setting up dependencies of the application.
It has private init with 2 types of services and static methods, initializing itself.
private init(networkManager: NetworkManagerProtocol, coreDataManager: CoreDataManagerProtocol)
Method that creates default application DI container.
static func makeDefault() -> AppDIContainer
Returns: App DI containter with default services' settings
Core Data Manager. It is responsible for all operations connected with persistance.
let coreDataManager: CoreDataManagerProtocol
Network Manager. It is responsible for all network requests of this app.
let networkManager: NetworkManagerProtocol