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
scene delegate에 대해 설명하시오. #41
Comments
scene delegate는 애플리케이션이 화면에 표시되는 방식과 애플리케이션의 생명주기를 담당합니다. |
iOS12까지는 대부분 하나의 앱에 하나의 window 였지만, iOS13부터 window의 개념이 scene으로 대체되고 하나의 앱에서 여러개의 scene을 가질 수 있게 되었습니다(iPad의 multi window?) 그로 인해, 원래 AppDelegate의 역할이었던 UILifeCycle에 대한 부분을 SceneDelegate가 하게 되었고, AppDelegate에는 Scene Session이 생성되거나 삭제되는 것을 관리하는 Session LifeCycle에 대한 역할이 추가 되었습니다. |
iOS 13부터 도입된 개념으로, 앱당 하나의 window만을 가졌던 과거에 비해 앱당 여러개의 scene을 가질 수 있게 되면서 생겨났습니다. Scene에는 UI의 인스턴스를 나타내는 windows와 viewcontroller들이 들어있습니다. 또한 scene에 해당하는 UIWindowSceneDelegate를 가지고 있어 UIKit과 앱간의 상호작용에 사용됩니다. Scene들은 같은 메모리와 앱 프로세스 공간을 공유하면서 동시에 실행됩니다. 따라서 하나의 앱이 여러개의 scene과 scene delegate 객체를 동시에 활성화할 수 있게 됩니다. SceneDelegate는 AppDelegate에서 수행하던 UILifeCycle에 관한 부분을 수행합니다. 이에 따라 AppDelegate에서는 Scene Session을 통해 scene에 대한 정보를 받아 업데이트됩니다. Scene Session이란 scene 고유의 런타임 인스턴스를 관리하는 객체로, 각 scene의 구성 세부사항을 보유합니다. <할 일이 없어진 AppDegate가 하는 것>
|
Scene delegate 는 iOS 13에 새롭게 생긴 개념으로 iOS 13이전에는 App delegate 가 모든 역할을 담당하고 있었습니다. iOS 13 이전, App delegate 의 역할은 크게 두 가지로 애플리케이션에게 프로세스 level의 이벤트와 UI의 상태변화를 알려주는 것이었습니다. iOS 13이후에는 Scene delegate 가 UI의 상태변화를 메소드를 통해 애플리케이션에게 알리는 역할을 대신하게 되었고 App delegate 는 애플리케이션에게 프로세스 level의 이벤트를 알려주는 역할을 그래도 수행하고 session life-cycle 을 알려주는 역할을 추가로 맡게 되었습니다. 이러한 변화로 인해 하나의 앱에서 여러개의 scene 을 가질 수 있게 되었습니다. |
No description provided.
The text was updated successfully, but these errors were encountered: