TIL(Today I Learned)
1월 14일(목)
학습내용
- iOS App Life Cycle[feat. AppDelegate, SceneDelegate]
- Apple 공식 문서의 Life Cycle 그림
- Foreground: 앱이 화면에 나타난 상태.
- Foreground Active: 사용자의 Interaction을 받을 수 있는 상태.
- Foreground Inactive: 사용자의 Interaction을 받을 수 없는 상태. (알람 왔을때, Alert가 떴을 때 등…)
- Backgroud: 앱이 화면에서 벗어난 상태.
- 점선은 시스템에 의한, 실선은 사용자에 의한 상태변화이다.
- AppDelegate와 SceneDelegate의 역할
- AppDelegate: Process Life Cycle, Session Life Cycle 관리
- SceneDelegate: UI Life Cycle 관리
- Scene의 출현은 멀티 윈도우를 지원하기 위한 구조적인 변화이다.
- Unattached, Not Running, Suspended의 차이는?
- Unattached : 메모리 점유, 실행중인 상태
- Suspended : 백그라운드, 프로세스 대기 상태, 실행 X
- Not Running : 실행 X, 메모리 X, 프로세스 생성 X
- Apple 공식 문서의 Life Cycle 그림
문제점/고민한점
- Process Life Cycle을 관리하기 위한 메서드는 무엇이 있을까?
- UIScene, UIWindow, UIView의 차이는?
- Memory Swap? caching? wired?
해결방법
- Process Life Cycle을 관리하기 위한 메서드는 무엇이 있을까?
- application(_:willFinishLaunchingWithOptions:) : App process launch가 시작되고나서 끝나기 전에 호출되는 메서드
- application(_:didFinishLaunchingWithOptions:) : App process launch가 끝나고 호출되는 메서드
- applicationWillTerminate(_:) : App process가 제거될때 호출되는 메서드
- UIScene, UIWindow, UIView의 차이는?
- UIScene : An object that represents one instance of your app’s user interface.
- UIWindow : The backdrop for your app’s user interface and the object that dispatches events to your views.
- UIView : An object that manages the content for a rectangular area on the screen.
- UIScene은 App UI의 인스턴스이며, Window와 View Controller(View)를 포함한다.
- UIWindow는 UI의 배경이며, 뷰에 이벤트를 전달한다.
- UIView는 기본적인 컨텐츠이다.
- Memory Swap? caching, wired?
- Swap Memory: 가상메모리를 위한 디스크 공간.
- Wired Memory: Mac OS Kernel이 예약한 메모리 공간.
- Cache Memory: 컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 일종의 메모리이자, 하드웨어 캐시.
참고