일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- deadlock
- Swift
- 오브젝트
- Apple Developer Academy
- 운영체제
- async
- Linked List
- SwiftUI
- @state
- 상호배제
- Algorithm
- 인프런
- 동시성
- 동기화
- core data
- struct
- 100 days of SwiftUI
- scrollview
- forEach
- 프로세스 스케줄링
- 데드락
- COLOR
- Codable
- 알고리즘
- IOS
- UserDefaults
- decode
- 비동기
- 가상 메모리
- 앨런
Archives
- Today
- Total
기어가더라도 제대로
AppDelegate, SceneDelegate 본문
훌륭한 글을 읽고 학습하며 정리한 내용입니다.
틀린 부분은 말씀해주시면 반영토록 하겠습니다.
❤️ 참조
https://lena-chamna.netlify.app/post/appdelegate_and_scenedelegate/
구성도
iOS 13 전에 환경
- 화면의 관장 단위가 UIWindow 이고, 앱 마다 1개씩 주어짐
- UI LifeCycle 을 App Delegate에서 담당
- UI Life Cycle 의 담당 주최가 Scene Delegate로 변경
- App Delegate 에 Session Life Cycle이 추가됨
App Deleagate의 역할
- 데이터 구조 초기화
- 앱의 Scene의 환경 설정
- 앱 밖에서 발생한 알림(배터리 부족, 다운로드 완료 등)에 대응
- 특정한 Scene, View, View Controller에 국한되지 않고, 앱 자체를 타겟으로 하는 이벤트에 대응
- 애플 푸쉬 알림 서비스와 같이 실행시 요구되는 모든 서비스 등록
Scene 은 무엇일까?
위에서 UIWindow가 담당하던 일을 Scene 이라는 객체로 이전하였다.
- Scene
- UIWindow
- View Controller
- UIWindowSceneDelegate
이 덕분에 특이 사항이 두가지 생긴다.
- Scene 들은 앱의 메모리와 프로세스 공간을 공유한다.
- "앱 : Scene = 1 : N" 의 관계를 가질 수 있다.
Scene Session
- 역할
- App Delegate가 Scene 에 대한 정보를 업데이트 받는데 사용된다.
- Scene 의 고유한 런타임 인스턴스를 관리 -> Scene 을 추적하는 Session 객체이다.
- 구성
- 고유 식별자(ID)
- 구성 세부사항(Configuration Details)
정리하자면, UIKit 이 Session 의 정보를 가지고 이 Session 이 Scene의 정보를 담고 있다. 이로써 App Delegate는 Scene의 직접적인 정보를 들고 있을 필요가 없이, Session ID 로 Scene이 현재 메모리에 올라와있는지, 화면에 나타나있는지 등에 대한 정보를 받는다. 비유를 하자면, Session 이 주민등록번호이고, Scene이 사람이다. Scene이 생성되면 주민번호를 부여받고, Scene 이 사망하면 주민번호를 삭제한다.
'UIKit 기초' 카테고리의 다른 글
searchBar 를 navigation bar 의 title 자리에 넣기 (0) | 2022.05.24 |
---|---|
야곰 오토레이아웃 필기(Intrinsic size, UIScroll View 등) (0) | 2022.05.04 |
UICollectionView, UIScrollView 수업 필기 자료 (0) | 2022.04.21 |
버튼 활성화 꼼수 (0) | 2022.04.11 |
모서리를 깎아보자! - 2 - (0) | 2022.04.09 |
Comments