FreeAPSApp.swift 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. _ = resolver.resolve(FetchGlucoseManager.self)!
  29. _ = resolver.resolve(FetchTreatmentsManager.self)!
  30. }
  31. var body: some Scene {
  32. FreeAPSApp.resolver.setup()
  33. FreeAPSApp.loadServices()
  34. return WindowGroup {
  35. Main.Builder(resolver: FreeAPSApp.resolver).buildView()
  36. }
  37. }
  38. }