앱의 최초 실행부터 종료까지 앱이 가지는 상태와

그 상태간의 전이를 의미한다.

앱의 상태는 현재 앱이 어떤것을 할 수 있는가를 결정한다.

배경

iOS는 오브젝트 c 기반으로 돌아가기 때문에 앱은 메인 함수에서 시작된다.

iOS의 핵심 라이브러리인 UIKit이 메인 함수를 관리하기 때문에

개발자는 main함수를 작성할 필요가 없다.

UIKit은 메인함수를 다루기 위해 UIApplicationMain() 함수를 호출한다.

이 함수를 통해 UIApplication 객체가 생성된다.

이 객체를 사용해 개발자는 앱의 실행에 부분적으로 개입가능하다.

iOS에서 앱을 실행하면

Main Run Loop

메인 런 루프는 사용자가 입력하는 이벤트를 처리하는 프로세스.

UIApplication 객체는 앱이 시작될 때 루프를 실행한다.

이 런루프를 이벤트를 받고 처리하거나 뷰 업데이트 하는데 사용한다.

이 런루프는 뷰와 관련있기 때문에 메인스레드에서 돌아간다.