2월 22일 (목)
🔥학습 내용
App Delegate, Scene Delegate
1. App Delegate란 무엇인가?
- 앱 전체의 생명주기를 관리한다. (앱 실행, 종료, 백그라운드/포어그라운드 전환 등 앱 전체에 영항을 미치는 이벤트를 처리한다.)
- App Delegate는 앱 전체의 생명주기 동안 존재한다. 앱이 실행될 때 처음 생성되고 앱이 종료될 때까지 메모리에 유지된다.
- 모든 iOS 앱에서 필수적으로 사용해야 한다.
- iOS 12 버전 그리고 그 이전 버전은 App Delegate를 사용했다.
2. App Delegate가 처리하는 이벤트
- 앱 실행 시점 (application:didFinishLaunchingWithOptions:)
- 앱 백그라운드/포어그라운드 전환 (applicationWillResignActive:,applicationDidBecomeActive:)
- 앱 종료 시점 (applicationWillTerminate:)
- 메모리 경고 시점 (applicationDidReceiveMemoryWarning:)
- URL 처리 (application:openURL:options:)
- 푸시 알림 처리 (application:didReceiveRemoteNotification:fetchCompletionHandler:)
이밖에도 상당히 많은 이벤트 처리를 할 수 있는 것을 알 수 있다.

3. Scene Delegate란 무엇인가?
- 씬의 생명주기를 관리한다. (씬이란? 앱의 특정 기능이나, 콘텐츠를 나타내는 단위 -> 하나의 창이라고 생각하면 될 것 같다.)
- 씬 연결, 연결 해제, 활성화/비활성화 등 씬과 관련된 이벤트를 처리한다.
- iOS 13 이상에서만 사용할 수 있고, 씬을 사용하는 앱에서만 필요하다.
4. Scene Delegate가 처리하는 이벤트
- 씬 연결 시점 (scene:willConnectToSession:options:)
- 씬 연결 해제 시점 (sceneDidDisconnect:)
- 씬 활성화 시점 (scene:didBecomeActive:)
- 씬 비활성화 시점 (sceneWillResignActive:)
App Delegate와는 다르게 이벤트 처리가 상당히 많지 않다는 것을 알 수 있다.

#.참고URL