라이프 사이클 이해가 중요한 이유!
앱을 실행하면 시스템(iOS)은 이렇게 실행한 앱에게 리소스를 몰아준다. 그러면 앱의 상태가 포그라운드, 백그라운드로 변하게되므로 개발자는 이렇게 앱의 상태가 변경에 됨에 따라 대응 할수 있게 앱을 만들어주어야한다. 그래서 앱의 라이프 사이클 이해가 중요하다!
기존 앱 라이프 사이클
크게 2개로 나누어져 있음 :
- Process Lifecycle
- UI Lifecycle
iOS 13 부터 멀티 윈도우를 제공해주면서
- Process Lifecycle, UI Lifecycle 책임의 변화가 필요했음
- Process Lifecycle, UI Lifecycle 담당자가 변경됨
UI Lifecycle 은 Scene Delegate 가 담당함
- Scene 의 상태는 아래와 같이 변경됨
=> 애플에서 구현해놓은 메서드들을 활용해야 함
loadView : 직접적으로 화면을 교체할 수 있음(코드로 화면을 그렸을 때)
viewDidAppear: 실제 스크린에 뷰가 나타나기 전에 호출 (애니메이션 시작, 타이머 시작 등..)
viewWillDisappear: 실제 스크린에 뷰가 사라지기 전에 호출 (애니메이션 멈춤, 타이머 멈춤 등..)