FreeAPSApp.swift 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import SwiftUI
  2. import Swinject
  3. private let dependencies: [DependeciesContainer.Type] = [
  4. StorageContainer.self,
  5. ServiceContainer.self,
  6. APSContainer.self,
  7. UIContainer.self,
  8. NetworkContainer.self,
  9. SecurityContainer.self
  10. ]
  11. private extension Swinject.Resolver {
  12. func setup() {
  13. for dep in dependencies {
  14. dep.setup()
  15. }
  16. }
  17. }
  18. @main struct FreeAPSApp: App {
  19. static let resolver = Container(defaultObjectScope: .container) { container in
  20. for dep in dependencies {
  21. dep.register(container: container)
  22. }
  23. }.synchronize()
  24. private static func loadServices() {
  25. resolver.resolve(AppearanceManager.self)!.setupGlobalAppearance()
  26. _ = resolver.resolve(DeviceDataManager.self)!
  27. _ = resolver.resolve(APSManager.self)!
  28. }
  29. var body: some Scene {
  30. FreeAPSApp.resolver.setup()
  31. FreeAPSApp.loadServices()
  32. return WindowGroup {
  33. Main.Builder(resolver: FreeAPSApp.resolver).buildView()
  34. }
  35. }
  36. }