FreeAPSApp.swift 965 B

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