iOS 앱이 동작하는 방법

최정은·2023년 8월 15일
0

Swift

목록 보기
5/27

라이프 사이클 이해가 중요한 이유!

앱을 실행하면 시스템(iOS)은 이렇게 실행한 앱에게 리소스를 몰아준다. 그러면 앱의 상태가 포그라운드, 백그라운드로 변하게되므로 개발자는 이렇게 앱의 상태가 변경에 됨에 따라 대응 할수 있게 앱을 만들어주어야한다. 그래서 앱의 라이프 사이클 이해가 중요하다!

앱 라이프 사이클 이야기

  • 기존 앱 라이프 사이클

  • 크게 2개로 나누어져 있음 :
    - Process Lifecycle
    - UI Lifecycle

  • iOS 13 부터 멀티 윈도우를 제공해주면서
    - Process Lifecycle, UI Lifecycle 책임의 변화가 필요했음
    - Process Lifecycle, UI Lifecycle 담당자가 변경됨

  • UI Lifecycle 은 Scene Delegate 가 담당함
    - Scene 의 상태는 아래와 같이 변경됨

개발자의 책임

  • 앱이 포그라운드 들어갈때
    • 이니셜 UI 준비
    • 사용자와의 인터랙션 준비
  • 포그라운드를 떠날때
    • 데이터 저장
    • 앱의 작업을 최소화할 준비
  • 백그라운드 들어갔을때
    • 앱의 작업을 중단함
    • 메모리 비우기
    • 현재 상태를 저장해놓고 다음을 준비

  • 앱의 생명주기
    ㄴ 앱의 비활성화 / (다른앱으로 또는 백그라운드로)전환/ 종료시점을 파악하기 위해
  • 뷰컨트롤러의 생명주기
    ㄴ 하나의 앱에서 화면 전환 시점을 파악하기 위해
  • Drawing주기
    ㄴ 하나의 화면에서 (애니메이션 등..)다시 그리는 시점을 파악하기 위해

=> 애플에서 구현해놓은 메서드들을 활용해야 함

loadView : 직접적으로 화면을 교체할 수 있음(코드로 화면을 그렸을 때)
viewDidAppear: 실제 스크린에 뷰가 나타나기 전에 호출 (애니메이션 시작, 타이머 시작 등..)
viewWillDisappear: 실제 스크린에 뷰가 사라지기 전에 호출 (애니메이션 멈춤, 타이머 멈춤 등..)

0개의 댓글