가지고 있는 아무 앱이나 실행시켜보면 본격적인 앱이 시작되기 전에 로고가 나오는 화면이 몇초동안 실행되는 것을 볼 수 있다. 이를 런치스크린(launch Screen)이라고 한다. 다른 말로는 splash라고도 한다.

런치스크린이 큰 의미가 없어 보이지만 앱이 처음 실행될 때 주요 데이터를 초기화할 수 있는 시간을 벌어주는 역할을 한다! 사용자에게 자연스러운 대기시간을 만들어주는것!! 애플의 UI가이드에서도 런치스크린 제작을 권장하고 있다.
ios에서 프로젝트를 만들면 시작화면파일이 제공된다. 파일 이름은 LaunchScreen.storyboard로 스토리보드 형식의 파일이다.

main.storyboard처럼 사용자가 원하는대로 라벨과 이미지를 사용해 꾸밀 수 있다. 그리고 설정항목에서 Launch Screen File에 Launch Screen을 설정할 수 있다. 나의 경우 LaunchScreen.storyboard로 지정해주었다.

이렇게하면 런치스크린 설정이 완료된 것이다!! 이제 런치스크린이 나올 시간을 정해보자. AppDelegate 클래스에서 설정할 수 있다. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 은 앱이 처음 실행될 때,필요한 시스템적 처리를 모두 끝내고 메인 화면을 표시하기 직전에 호출된다. 이 메소드에 시간지연을 하는 코드를 추가해서 런치스크린이 나오는 시간을 추가할 수 있다. 나는 3초 sleep하게 해서 지연시켰다.

AppDelegate 클래스는 앱 전체의 실행 흐름을 컨트롤하는 객체로서 앱이 처음 실행 되거나 종료될 때,혹은 백그라운드 상태로 들어가거나 포그라운드 상태로 활성화될 때 호출되는 메소드들로구성되어 있다.
