Skip to content

Instantly share code, notes, and snippets.

@iharkatkavets
Last active September 15, 2019 07:43
Show Gist options
  • Save iharkatkavets/c0e29f354af091646404daabfa292a10 to your computer and use it in GitHub Desktop.
Save iharkatkavets/c0e29f354af091646404daabfa292a10 to your computer and use it in GitHub Desktop.
Xcode
import UIKit
import Swinject
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
let diResolver = {
Assembler([CoreAssembly(),
MainAssembly(),
PasswordAssembly(),
FilesListAssembly()]).resolver
}()
var window: UIWindow? = {UIWindow(frame: UIScreen.main.bounds)}()
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window?.rootViewController = diResolver.resolve(MainViewInput.self)?.getViewController()
// if let controller = diResolver.resolve(PasswordViewInterface.self)?.viewController {
// let navigationController = UINavigationController(rootViewController: controller)
// navigationController.isNavigationBarHidden = true
// window?.rootViewController = navigationController
// }
self.window?.makeKeyAndVisible()
return true
}
}
import Foundation
import Swinject
class CoreAssembly: Assembly {
func assemble(container: Container) {
container.register(LauncherInput.self) {
return Launcher(withResolver: $0)
}
container.register(DatabaseStoreInput.self) { resolver in
return resolver.resolve(DatabaseDataForScreenshotsInput.self)!
}
container.register(FilesStoreInput.self) { _ in
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in:.userDomainMask).first!
return FilesStore(withDirURL: documentsUrl)
}
container.register(ImageReaderInput.self) { _ in
return ImageReader(withDefault: #imageLiteral(resourceName: "no_photo"))
}
container.register(ServicesPoolInput.self) { rlr in
return ExternalServicesPool(with: container)
}
.inObjectScope(.weak)
container.register(AdBannerIdentifiers.self) { _ in
return AdBannerIdentifiers()
}
container.register(AppConfigsInput.self) { _ in
return AppConfigs()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment