FreeAPSApp.swift 988 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import SwiftUI
  2. import Swinject
  3. private let dependencies: [DependeciesContainer.Type] = [
  4. ServiceContainer.self,
  5. APSContainer.self,
  6. UIContainer.self,
  7. StorageContainer.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(APSManager.self)!
  27. }
  28. var body: some Scene {
  29. FreeAPSApp.resolver.setup()
  30. FreeAPSApp.loadServices()
  31. return WindowGroup {
  32. Main.Builder(resolver: FreeAPSApp.resolver).buildView()
  33. }
  34. }
  35. }