FreeAPSApp.swift 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import SwiftUI
  2. import Swinject
  3. @main struct FreeAPSApp: App {
  4. @Environment(\.scenePhase) var scenePhase
  5. // Dependencies Assembler
  6. // contain all dependencies Assemblies
  7. // TODO: Remove static key after update "Use Dependencies" logic
  8. private static var assembler = Assembler([
  9. StorageAssembly(),
  10. ServiceAssembly(),
  11. APSAssembly(),
  12. NetworkAssembly(),
  13. UIAssembly(),
  14. SecurityAssembly()
  15. ], parent: nil, defaultObjectScope: .container)
  16. var resolver: Resolver {
  17. FreeAPSApp.assembler.resolver
  18. }
  19. // Temp static var
  20. // Use to backward compatibility with old Dependencies logic on Logger
  21. // TODO: Remove var after update "Use Dependencies" logic in Logger
  22. static var resolver: Resolver {
  23. FreeAPSApp.assembler.resolver
  24. }
  25. private func loadServices() {
  26. resolver.resolve(AppearanceManager.self)!.setupGlobalAppearance()
  27. _ = resolver.resolve(DeviceDataManager.self)!
  28. _ = resolver.resolve(APSManager.self)!
  29. _ = resolver.resolve(FetchGlucoseManager.self)!
  30. _ = resolver.resolve(FetchTreatmentsManager.self)!
  31. _ = resolver.resolve(FetchAnnouncementsManager.self)!
  32. }
  33. init() {
  34. loadServices()
  35. }
  36. var body: some Scene {
  37. WindowGroup {
  38. Main.RootView(resolver: resolver)
  39. }
  40. .onChange(of: scenePhase) { newScenePhase in
  41. debug(.default, "APPLICATION PHASE: \(newScenePhase)")
  42. }
  43. }
  44. }