-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Architecting Your App for Multiple Windows #18
Comments
3가지 주요 토픽
iOS 13에서 여러 창(Multiple Windows)를 사용할 수 있도록 응용 프로그램 생명 주기(App Lifecycle)의 변경 사항에 대한 개요를 살펴 보는 것부터 시작합니다. 그런 다음에 UISceneDelegate에 대해 더 깊이 파고들어 그곳에서 어떤 종류의 작업을 수행해야 하는지에 대해 이야기 합니다. 마지막으로 ArchitectureKit의 몇 가지 모범 사례를 살펴봅니다. 1️⃣ iOS 12 및 이전 버전에서의 AppDelegate의 역할과 책임AppDelegate의 2가지 주요 역할1. Process Lifecycle (프로세스 수준의 이벤트를 애플리케이션에 알리는 것)
2. UI Lifecycle
문제의식 가져보기
일반적으로 앱이 Launching을 마친 이후에, 해당 메서드에서 데이터베이스에 연결하거나 데이터 구조를 초기화 하는 것과 같은 one-time, non-UI (일회성, 비 UI) 전역 설정을 수행합니다. 그리고 그 이후에 UI를 설정합니다. 그러나 이것은 iOS 13에서 유효하지 않습니다. Why?애플리케이션은 일반적으로(그리고 아이폰에서) 하나의 프로세스를 공유하지만 여러 UI 인스턴스 또는 Scene Session을 가질 수 있기 때문입니다. iOS 13부터 아이패드에 다중 창 지원이 가능하게 되었죠. 그렇기 때문에 App Delegate의 책임이 변경되어야 했습니다. 역할의 분리
AppDelegate에서 수행했던 모든 UI 설정 또는 분해(tear down) 작업은 이제 Scene Delegate의 해당 메서드로 마이그레이션 되었습니다. 실제로 iOS 13에서 애플리케이션이 새로운 Scene Lifecycle을 채택하면 UIKit은 UI 상태와 관련된 App Delegate 메서드 호출을 중지합니다. 대신에 그림에 있는 것처럼 새로운 Scene Delegate 메서드들을 호출하게 됩니다. (대부분 AppDelegate에 있던 메서드와 1:1 매핑이 됩니다.) 그렇다면 과연 iOS 13이후에서 multiple window를 지원하게 되면 iOS 12 이전 앱들은 지원을 중단해야 할까요?걱정하지 마세요. 다시 배포를 할 때 2가지 경우의 메서드 세트를 모두 유지하면 UIKit이 알아서 런타임에 올바른 세트를 호출해줍니다. 2️⃣ Using the scene delegate (Scene Delegate 사용), App Call Stack
|
The text was updated successfully, but these errors were encountered: