//애플리케이션이 실행된 직후 사용자의 화면에 보여지기 직전에 호출되는 메서드
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
//애플리케이션이 최초 실행될 때 호출되는 메서드
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
//애플리케이션이 InActive 상태로 전환되기 직전에 호출되는 메서드 예) task 일시정지, 타이머 비활성화, 일시정지(게임) 등
func applicationWillResignActive(_ application: UIApplication)
//애플리케이션이 백그라운드 상태로 전환된 직후 호출되는 메서드
func applicationDidEnterBackground(_ application: UIApplication)
//애플리케이션이 Active 상태가 되기 직전, 화면에 보여지기 직전에 호출되는 메서드
func applicationWillEnterForeground(_ application: UIApplication)
//애플리케이션이 Active 상태로 전환된 직후 호출되는 메서드
func applicationDidBecomeActive(_ application: UIApplication)
//애플리케이션이 종료되기 직전에 호출되는 메서드
func applicationWillTerminate(_ application: UIApplication)
https://developer.apple.com/documentation/swift/using-delegates-to-customize-object-behavior
https://developer.apple.com/documentation/swift/managing-a-shared-resource-using-a-singleton