시리즈에서 App의 LifeCycle, AppDelegate에 대한 정리를 했는데요.
지금까지 정리했던 함수를 한 판 정리 해보겠습니다.
1️⃣ 앱이 실행될 때 불리는 함수
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... }
👩💻
App의 Data Structure 초기화
one-time Setup
앱이 사용하는 중요한 서비스를 연결 (APNs, Kakao SDK, Firebase 등)
앱이 어떻게 launch되었는지 체크 (Push로 실행되었는지 체크하고, 그에 맞는 이벤트를 정의)
내부 캐시 정책 초기화 등.
2️⃣ Inactive 상태로 전환될 때 불리는 함수
/// Scene Support App
func sceneWillEnterForeground(_ scene: UIScene) { .. }
/// 다른 모든 App
func applicationWillEnterForeground(_ application: UIApplication) { ... }
👩💻
Foreground 상태에 들어갈 때 App의 Data 모델을 업데이트 합니다.
Background에서 foreground로 전환될 때, 이 함수를 이용해서 네트워크로 부터 데이터를 fetch하고 disk로 부터 리소스를 로드할 수 있습니다.
-> 이해가 잘 안감. ViewController에서 하는 일이 아닌지?
3️⃣ Inactive -> Active 상태로 전환
func sceneDidBecomeActive(_ scene: UIScene) { ... }
func applicationDidBecomeActive(_ application: UIApplication) { ... }
👩💻
앱의 UI를 구성하고, 런타임에 해야할 일을 세팅하기 좋습니다.
등
4️⃣ Active -> Inactive -> Background 상태로 전환
func sceneWillResignActive(_ scene: UIScene) { ... }
func applicationWillResignActive(_ application: UIApplication) { ... }
👩💻
Background로 들어간다!!!!!! 하고있던거 정리해라!!!!!!
func sceneDidEnterBackground(_ scene: UIScene) { ... }
func applicationDidEnterBackground(_ application: UIApplication) { ... }
👩💻
Background다!!! 공유하고있던거 다 해제해!!!
5️⃣ App이 제거 될 때
applicationWillTerminate(_:)
6️⃣ App이 URL로 되어있는 리소스를 열 때 불리는 함수
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { ... }