앱의 최초 실행부터 종료까지 앱이 가지는 상태와
그 상태간의 전이를 의미한다.
앱의 상태는 현재 앱이 어떤것을 할 수 있는가를 결정한다.
iOS는 오브젝트 c 기반으로 돌아가기 때문에 앱은 메인 함수에서 시작된다.
iOS의 핵심 라이브러리인 UIKit이 메인 함수를 관리하기 때문에
개발자는 main함수를 작성할 필요가 없다.
UIKit은 메인함수를 다루기 위해 UIApplicationMain() 함수를 호출한다.
이 함수를 통해 UIApplication 객체가 생성된다.
이 객체를 사용해 개발자는 앱의 실행에 부분적으로 개입가능하다.
메인 런 루프는 사용자가 입력하는 이벤트를 처리하는 프로세스.
UIApplication 객체는 앱이 시작될 때 루프를 실행한다.
이 런루프를 이벤트를 받고 처리하거나 뷰 업데이트 하는데 사용한다.
이 런루프는 뷰와 관련있기 때문에 메인스레드에서 돌아간다.