프로그래밍/iOS

Performing One-Time Setup for Your App

병인 2020. 12. 31. 07:30

앱 환경의 적절한 설정을 확인하시오.


Overview

 

사용자가 앱을 처음 시작할 때 일부 일회성 작업을 수행하여 앱 환경을 준비할 수 있다.
예를 들어 다음을 수행 할 수 있다.

 

  • 서버에서 필요한 데이터를 다운로드한다.
  • 문서 템플릿 또는 수정 가능한 데이터 파일을 App Bundle에서 쓰기 가능한 디렉터리로 복사한다.
  • 사용자에 대한 default preferences를 설정한다.
  • 사용자 계정을 설정하거나 기타 필요한 데이터를 수집한다.

 

App delegate의 application(_:willFinishLaunchingWithOptions:) 또는 application(_:didFinishLaunchingWithOptions:) 메소드에서 일회성 작업을 수행한다. 사용자 입력이 필요하지 않은 태스크에 대해 앱의 메인 스레드를 차단하지 마시오. 대신 dispatch queue를 사용하여 태스크를 비동기적으로 시작하고 앱 시작이 완료되는 동안 백그라운드에서 실행되도록 한다. 사용자 입력이 필요한 태스크의 경우 application(_:didFinishLaunchingWithOptions:) 메서드에서 사용자 인터페이스를 모두 변경한다.

 

Install Files in the Proper Locations

 

앱에는 파일을 저장하기 위한 자체 컨테이너 디렉터리가 있으며 항상 ~/Library 하위 디렉터리에 앱별 파일을 배치해야 한다. 특히 다음 ~/Library 하위 디렉터리에 파일을 저장한다.

 

  • ~/Library/Application Support/ — 사용자의 다른 콘텐츠와 함께 백업할 앱별 파일을 저장한다. (필요에 따라 여기에서 사용자 정의 하위 디렉토리를 만들 수 있다.) 데이터 파일, 구성 파일, 문서 템플릿 등에이 디렉토리를 사용한다.
  • ~/Library/Caches/ — 쉽게 다시 생성하거나 다운로드 할 수 있는 임시 데이터 파일을 저장한다.

 

앱 컨테이너의 디렉토리 중 하나에 대한 URL을 얻으려면 FileManager의 urls(for:in:) 메소드를 사용하시오.

 

// 앱별 디렉터리 위치 가져 오기
let appSupportURL = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
let cachesURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)

 

앱의 tmp/ 디렉토리에 임시 파일을 배치한다. 임시 파일에는 내용을 추출하여 다른 곳에 설치 한 후 삭제하려는 압축 파일이 포함될 수 있다. FileManager의 temporaryDirectory 메소드를 사용하여 앱의 임시 디렉토리 URL을 검색한다.

 

[원문]

 

Apple Developer Documentation

 

developer.apple.com