애플은 지금까지 UIKit으로 개발되어온 앱들을 위해 SwiftUI와 UIKit이 동일한 프로젝트 내에 통합되도록 하는 방법을 제공
UIWindow
사용자에게 보이지 않지만 UI를 구성하는 시각적 객체를 담기 위한 컨테이너를 제공
모든 iOS 앱은 이벤트 처리 및 UI 표시를 위해,
앱에 의해 사용될 서로 다른 UIWindow 객체를 관리하는 UIApplication
클래스의 인스턴스 하나를 갖는다.
해당 인스턴스는 앱의 생명 주기와 관련된 중요한 이벤트들을 델리게이트 패턴을 통해 연결시킨다.
대표적으로 application(_:didFinishLaunchingWithOptions:)
등이 있다.
앱의 UI는 UIWindow
의 UIWindowScene
객체의 형태인 scene으로 표시
(스토리보드의 scene이 아니다.)
여러 화면 모두 동일한 UIApplication
객체를 공유
다중 윈도우 구성에서 각 UIWindowScene
인스턴스는 자신만의 델리게이트 인스턴스를 가짐
SceneDelegate 클래스는 현재 세션과 연결되는 새로운 화면, 백그라운드와 포그라운드 전환 등의
이벤트를 처리하는 메서드 포함
UIKit 내부에 SwiftUI 뷰를 포함시키려면 UIHostingController
인스턴스 내부에 SwiftUI 뷰를 포함
(추후 자세히 설명)