"멀티 윈도우를 지원해야 되기 때문에 SceneDelegate가 필요하다."

"window의 개념이 scene으로 대체"

https://velog.io/@dev-lena/iOS-AppDelegate와-SceneDelegate

iOS13부터 AppDelegate가 하는 일?

이전에는 앱이 foreground에 들어가거나 background로 이동할 때 앱의 상태를 업데이트하는 등의 앱의 주요 생명 주기 이벤트를 관리했었지만 더이상 하지 않습니다.현재 하는 일은1. 앱의 가장 중요한 데이터 구조를 초기화하는 것2. 앱의 scene을 환경설정(Configuration)하는 것3. 앱 밖에서 발생한 알림(배터리 부족, 다운로드 완료 등)에 대응하는 것4. 특정한 scenes, views, view controllers에 한정되지 않고 앱 자체를 타겟하는 이벤트에 대응하는 것.5. 애플 푸쉬 알림 서브스와 같이 실행시 요구되는 모든 서비스를 등록하는것.입니다.(UIApplicationDelegate - Apple Developer Document 참고)

iOS 13이전에는 앱은 오직 "하나의 프로세스"와 그에 맞는 "하나의 UI"만 가진다.

Process Lifecycle 로는 프로세스가 Launch되고, Terminate됐는지 알 수 있음.

UI Lifecycle 로는 UI State를 알 수 있었음. 아래 메소드와 같이.

iOS 13부터는 앱은 여전히 하나의 프로세스만을 공유하지만, 여러 UI인스턴스 또는 Scene Session이 있을 수 있기 때문에 App Delegate의 책임(or 역할)이 약간 변경 됨을 의미한다.

프로세스 이벤트 및 Lifecycle에는 여전히 AppDelegate가 책임을 가지지만

더이상 UI Lifecycle과는 관련된것이 없기때문입니다.

UI Lifecycle은 Scene Delegate가 책임을 진다.

https://zeddios.tistory.com/811