Performing One-Time Setup for Your App

Panther·2021년 8월 13일
0

https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/performing_one-time_setup_for_your_app

"Ensure proper configuration of your app environment."

앱 환경의 적합한 설정을 가능하게 합니다.

Overview

사용자가 처음으로 앱을 launch 하면, 한 번의 작업을 수행해서 앱 환경을 준비될 수 있도록 하길 원할 것입니다. 예를 들어 아래와 같은 사항을 원할 것입니다.

  • 서버로부터 필요한 데이터를 다운로드 합니다.
  • 쓰기 가능한 디렉토리에 앱 번들로부터 문서 템플릿 혹은 수정 가능한 데이터 파일을 복사하고자 할 것입니다.
  • 사용자를 위한 기본값 preference를 설정하고자 할 것입니다.
  • 사용자 계정을 설정하거나 필요한 다른 데이터를 수집하고자 할 것입니다.

앱 딜리게이트의 application(_:willFinishLaunchingWithOptions:) 혹은 application(_:didFinishLaunchingWithOptions:) 메소드에서 이와 같은 모든 작업을 수행하시기 바랍니다. 사용자 입력을 요구하지 않는 작업에 대해 앱의 메인 스레드를 절대 막지 않아야 합니다. 대신 디스패치 큐를 사용해서 작업을 비동기로 시작해야 하며, 앱이 launch되는 동안 백그라운드에서 작동할 수 있도록 해야 합니다. 사용자 입력을 요구하는 작업의 경우 application(_:didFinishLaunchingWithOptions:) 메소드에서 UI에 대한 변경사항을 만들어야 합니다.

Install Files in the Proper Locations

앱은 파일 저장을 위한 고유한 컨테이너 디렉토리를 가지고 있을 것이며, 항상 ~/Library 하위 디렉토리에 app-specific 파일을 위치시켜야 합니다. 구체적으로 아래에 해당하는 ~/Library 하위 디렉토리에 파일을 저장하시기 바랍니다.

  • ~/Library/Application Support/—사용자의 다른 컨텐트와 함께 백업하길 원하는 app-specific 파일을 저장합니다. (필요한 경우 여기에 커스텀 하위 디렉토리를 생성할 수 있습니다.) 데이터 파일, 설정 파일, 문서 템플릿 등에 대해 이 디렉토리를 사용하시기 바랍니다.
  • ~/Library/Caches/—쉽게 재생성될 수 있거나 다운로드될 수 있는 임시 데이터를 저장합니다.

앱 컨테이너에서 디렉토리 중 하나에 대한 URL을 가져오려면, FileManagerurls(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/ 디렉토리에 위치시키기 바랍니다. 임시 파일은 어느 곳에서든 추출되거나 설치될 수 있는 컨텐츠를 삭제되도록 의도를 갖는 압축 파일을 포함할 것입니다. FileManagertemporaryDirectory 메소드를 사용해서 앱의 임시 디렉토리에 대한 URL을 가져오시기 바랍니다.

See Also


Launch Time

About the App Launch Sequence

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

Preserving Your App's UI Across Launches

시스템 종료 후 앱을 이전 상태로 되돌립니다.

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


0개의 댓글