import SwiftUI import Swinject @main struct FreeAPSApp: App { @Environment(\.scenePhase) var scenePhase @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate // Dependencies Assembler // contain all dependencies Assemblies // TODO: Remove static key after update "Use Dependencies" logic private static var assembler = Assembler([ StorageAssembly(), ServiceAssembly(), APSAssembly(), NetworkAssembly(), UIAssembly(), SecurityAssembly() ], parent: nil, defaultObjectScope: .container) var resolver: Resolver { FreeAPSApp.assembler.resolver } // Temp static var // Use to backward compatibility with old Dependencies logic on Logger // TODO: Remove var after update "Use Dependencies" logic in Logger static var resolver: Resolver { FreeAPSApp.assembler.resolver } private func loadServices() { resolver.resolve(AppearanceManager.self)!.setupGlobalAppearance() _ = resolver.resolve(DeviceDataManager.self)! _ = resolver.resolve(APSManager.self)! _ = resolver.resolve(FetchGlucoseManager.self)! _ = resolver.resolve(FetchTreatmentsManager.self)! _ = resolver.resolve(FetchAnnouncementsManager.self)! _ = resolver.resolve(CalendarManager.self)! _ = resolver.resolve(UserNotificationsManager.self)! _ = resolver.resolve(WatchManager.self)! _ = resolver.resolve(HealthKitManager.self)! _ = resolver.resolve(BluetoothStateManager.self)! } init() { debug( .default, "FreeAPS X Started: v\(Bundle.main.releaseVersionNumber ?? "")(\(Bundle.main.buildVersionNumber ?? "")) [buildDate: \(Bundle.main.buildDate)]" ) loadServices() } var body: some Scene { WindowGroup { Main.RootView(resolver: resolver) } .onChange(of: scenePhase) { newScenePhase in debug(.default, "APPLICATION PHASE: \(newScenePhase)") } } }