"Ensure proper configuration of your app environment."
앱 환경의 적합한 설정을 가능하게 합니다.
사용자가 처음으로 앱을 launch 하면, 한 번의 작업을 수행해서 앱 환경을 준비될 수 있도록 하길 원할 것입니다. 예를 들어 아래와 같은 사항을 원할 것입니다.
앱 딜리게이트의 application(_:willFinishLaunchingWithOptions:)
혹은 application(_:didFinishLaunchingWithOptions:)
메소드에서 이와 같은 모든 작업을 수행하시기 바랍니다. 사용자 입력을 요구하지 않는 작업에 대해 앱의 메인 스레드를 절대 막지 않아야 합니다. 대신 디스패치 큐를 사용해서 작업을 비동기로 시작해야 하며, 앱이 launch되는 동안 백그라운드에서 작동할 수 있도록 해야 합니다. 사용자 입력을 요구하는 작업의 경우 application(_:didFinishLaunchingWithOptions:)
메소드에서 UI에 대한 변경사항을 만들어야 합니다.
앱은 파일 저장을 위한 고유한 컨테이너 디렉토리를 가지고 있을 것이며, 항상 ~/Library 하위 디렉토리에 app-specific 파일을 위치시켜야 합니다. 구체적으로 아래에 해당하는 ~/Library 하위 디렉토리에 파일을 저장하시기 바랍니다.
앱 컨테이너에서 디렉토리 중 하나에 대한 URL을 가져오려면, FileManager
의 urls(for:in:)
메소드를 사용하시기 바랍니다.
Listing 1 Getting the location of app-specific directories
let appSupportURL = FileManager.default.urls(for:
.applicationSupportDirectory, in: .userDomainMask)
let cachesURL = FileManager.default.urls(for:
.cachesDirectory, in: .userDomainMask)
모든 임시 파일은 tmp/ 디렉토리에 위치시키기 바랍니다. 임시 파일은 어느 곳에서든 추출되거나 설치될 수 있는 컨텐츠를 삭제되도록 의도를 갖는 압축 파일을 포함할 것입니다. FileManager
의 temporaryDirectory
메소드를 사용해서 앱의 임시 디렉토리에 대한 URL을 가져오시기 바랍니다.
launch 타임에 커스텀 코드가 실행되는 순서에 대해 알아봅니다.
https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/about_the_app_launch_sequence
https://velog.io/@panther222128/About-the-App-Launch-Sequence
시스템 종료 후 앱을 이전 상태로 되돌립니다.
https://developer.apple.com/documentation/uikit/view_controllers/preserving_your_app_s_ui_across_launches
https://velog.io/@panther222128/Preserving-Your-Apps-UI-Across-Launches