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

문제점/고민한점

  • 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: 컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 일종의 메모리이자, 하드웨어 캐시.

참고