본문 바로가기

공부/iOS

Performing One-Time Setup for Your App (앱에 대한 일회성 설정 수행)

 

안녕하세요. brody입니다.

 

이번 아티클은 앱에 대한 일회성 설정 수행이라고 하는데요.

 

아마도... 2020/08/28 - [공부/iOS] - About the App Launch Sequence 앱 런치 시퀀스에 대하여 에서 본 앱을 실행할 때 

Custom Tasks를 할 수 있다고 했는데 하는 방법에 대해서 정리해놓은 문서 아닐까 라는 추측을 하면서~~

 

바로 시작해볼게요!

 

애플 원문 링크는 아래와 같습니다.

https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app


 

Performing One-Time Setup for Your App (앱에 대한 일회성 설정 수행)

앱 환경의 적절한 구성을 확인하십시오.

 

 

OverView

사용자가 처음으로 앱을 시작할 때 몇 가지 일회성 작업을 수행하여 앱 환경을 준비할 수 있습니다.

 

예를 들어 다음을 수행할 수 있습니다.

 

  • 서버에서 필요한 데이터를 다운로드 
     
  • 문서 템플릿 또는 수정 가능한 파일을 App Bundle에서 쓰기 가능한 폴더로 복사합니다. 
     
  •  사용자에 대한 기본 환경 설정을 구성합니다.
  • 사용자 계정을 설정하거나 기타 필요한 데이터를 수집합니다.

app delegate의 application (_: willFinishLaunchingWithOptions :) 또는 application (_ : didFinishLaunchingWithOptions :) 메소드에서 일회성 작업을 수행합니다.

 

사용자 입력이 필요 없는 작업에 대해 앱의 기본 스레드를 차단하면 안 됩니다.

 

대신 Dispatch queue를 사용하여 작업을 비동기 적으로 시작하고 앱 시작이 완료되는 동안 백그라운드에서 실행되도록 합니다.

 

사용자 입력이 필요한 작업의 경우 application (_: didFinishLaunchingWithOptions :) 메소드에서 사용자 인터페이스를 모두 변경합니다. 

 

 

Install Files in the Proper Locations(적절한 위치에 파일 설치하기)

앱에는 파일을 저장하기 위한 고유한 container directory가 있으며 항상 ~/Library 하위 directory에 배치해야 합니다.

 

특히 아래와 같은 경우 ~/Library 하위 directory에 저장해야 합니다.

 

  • ~/Library/Application Support/사용자의 다른 콘텐츠와 함께 백업할 앱별 파일을 저장합니다.

    (필요에 따라 여기에서 사용자 지정 하위 directory를 만들 수 있습니다.) 데이터 파일, 구성 파일, 문서 템플릿  등을 이 directory에 사용합니다.

  • ~/Library/Caches/ 쉽게 재생성하거나 다운로드할 수 있는 임시 데이터 파일을 저장합니다.

앱 컨테이너의 directory 중 하나에 대한 URL을 얻으려면 FileManagerurls(for:in:) 메소드를 사용하세요.

 

 

 

앱의 tmp/ directory에 임시 파일을 저장합니다.

 

임시 파일에는 콘텐츠를 추출하여 다른 곳에 설치한 후 삭제하려는 압축 파일이 포함될 수 있습니다.

 

FileManagertempporaryDiretory 메서드를 사용하여 앱의 임시 directory URL을 검색합니다.

 

Library 디렉터리는 설치된 앱의 xcappdata 파일을 열어보면 AppData > Library가 있죠. 여기입니다!

 

 


여기까지 입니다.

 

예상대로(?) appdelegate에서 제공하는 메소드들이 나왔군요. 

 

정리해보자면

 

app delegate에서 제공해주는 메소드를 사용해서 앱이 실행되기 전에 앱 환경을 준비할 수 있다.

기본적으로 메인 스레드를 블록 하면 안 되고 백그라운드에서 작업하고 싶은 일이 있다면 dispatch queue를 사용해라.

임시파일과 백업할 파일은 ~/Library의 하위 디렉터리에서 사용해야 한다.

 

정도인 거 같네요. 

 

파일 관련된 건 아직 감이 잘 안 오지만 조금 더 공부하면서 알아보도록 할게요.

예전에 Libarary가 아닌 Documents에 sqlite파일을 저장했었는데... Application Support에 옮겼어야 하나..? 

이렇게 또 하나 알게 되어서 다행이네요 하하... 

 

그럼 오늘은 여기까지 할게요~ 

ㅅㄱㄹ!