Xamarin의 tvOS 리소스 및 데이터 스토리지
이 문서에서는 Xamarin.tvOS 앱에서 리소스 및 영구 데이터 스토리지 작업에 대해 설명합니다.
tvOS 리소스 제한 사항
iOS 디바이스와 달리, 새로운 Apple TV는 tvOS 앱 또는 데이터에 대해 매우 제한된 영구 로컬 스토리지를 제공합니다. 매우 작은 항목(예: 사용자 기본 설정)의 경우 tvOS 앱은 여전히 500KB의 데이터 제한으로 액세스할 수 NSUserDefaults
있습니다. 그러나 Xamarin.tvOS 앱이 더 많은 양의 정보를 유지해야 하는 경우 iCloud에서 해당 데이터를 저장하고 검색해야 합니다.
또한 tvOS는 Apple TV 앱의 크기를 200MB로 제한합니다. 앱에 이 크기를 초과하는 리소스가 필요한 경우 주문형 리소스를 사용하여 패키지하고 로드해야 합니다(최대 2GB 추가). 이러한 제한 사항을 감안할 때 앱 사용자에게 최상의 환경을 제공하기 위해 추가 자산을 다운로드하는 시간을 올바르게 지정하는 것이 중요합니다. 자세한 내용은 Apple의 주문형 리소스 가이드를 참조하세요.
비영구 다운로드
각 tvOS 앱에는 추가 리소스 및 자산이 다운로드되는 임시 캐시 디렉터리가 제공됩니다. 앱이 계속 실행되는 한 이 디렉터리가 유지됩니다. 그러나 Apple TV는 다른 앱 또는 시스템 사용을 위한 공간을 확보해야 하므로 이 캐시를 삭제할 수 있습니다.
따라서 앱은 다음에 시작될 때 이전에 다운로드한 콘텐츠를 사용할 수 없습니다. Xamarin.tvOS 앱은 항상 필요한 리소스가 있는지 검사 필요에 따라 다운로드해야 합니다.
Important
필요에 따라 다른 자산 및 리소스를 다운로드할 수 있는 기능이 있지만 Apple은 예측할 수 없는 결과를 초래할 수 있으므로 앱 캐시의 모든 공간을 사용하지 않도록 경고합니다.
리소스 관리
위에서 설명한 것처럼 tvOS 앱에서 사용할 수 있는 제한된 비영구적 정보 스토리지로 인해 이러한 제한은 Xamarin.tvOS 앱에 대한 훌륭한 사용자 환경을 만들기 위한 신중한 계획이 필요합니다.
iCloud Data Storage
Apple TV의 스토리지는 제한되어 있기 때문에 영구적, 로컬 스토리지가 매우 제한적일 뿐만 아니라 앱은 다음에 실행될 때 이전에 다운로드한 정보를 사용할 수 있다는 보장이 없습니다.
따라서 Xamarin.tvOS 앱은 iCloud 데이터 저장소에 사용자 데이터를 저장해야 합니다. Apple은 tvOS 앱에 대해 다음 두 가지 iCloud 기반 데이터 스토리지 옵션을 제공합니다.
- iCloud KVS(키-값 스토리지) - 앱에 필요할 수 있는 작은 정보(1MB 미만)의 경우(예: 사용자 기본 설정) iCloud KVS Storage를 사용할 수 있습니다. iCloud KVS 데이터는 클라우드 및 동일한 앱을 실행하는 모든 사용자의 디바이스에 자동으로 동기화됩니다. 자세한 내용은 iCloud 문서 소개 또는 iCloud 설명서의 키-값 데이터에 대한 Apple 디자인의 키-값 스토리지 섹션을 참조하세요.
- CloudKit - 더 큰 정보(1MB 초과)를 저장하기 위해 Apple의 CloudKit Framework를 사용합니다. iCloud KVS Storage와 달리 CloudKit 데이터는 앱의 모든 사용자 간에 공유할 수 있습니다(단일 사용자에 대한 비공개). 자세한 내용은 CloudKit 설명서 또는 Apple의 CloudKit 빠른 시작 소개를 참조하세요.
Important
Apple에서는 개발자가 유럽 연합의 GDPR(일반 데이터 보호 규정)을 제대로 처리하는 데 도움이 되는 도구를 제공합니다.
주문형 리소스
주문형 리소스는 앱 스토어에서 호스트되고 앱에서 필요에 따라 다운로드되는 앱 콘텐츠 및 자산(앱 번들과는 별개)을 제공합니다. 주문형 리소스를 사용하여 최대 2GB의 데이터를 추가로 사용할 수 있습니다. 초기 앱 다운로드를 더 작게 설정하면서(tvOS 앱은 최대 200MB로 제한됨) 필요에 따라 풍부한 자산을 제공합니다.
tvOS 앱이 주문형 리소스를 요청하면 시스템은 이 콘텐츠의 다운로드 및 스토리지를 앱의 캐시 디렉터리에 자동으로 관리합니다. 앱은 이 콘텐츠가 다운로드되어 계속 사용 가능해질 때까지 기다려야 합니다.
이러한 리소스는 앱의 여러 출시 동안 Apple TV에 계속 캐시될 수 있으므로 출시 주기가 빨라질 수 있습니다. 그러나 앱은 다음에 시작될 때 이전에 다운로드한 콘텐츠를 사용할 수 없습니다. 자세한 내용은 위의 비영구 다운로드 섹션을 참조하세요.
Xcode를 사용하여 제공 리소스 태그와 연결된 관련 콘텐츠(예: 게임 수준 2의 모든 자산)의 번들을 만듭니다. 나중에 앱은 이 리소스 태그를 지정하여 주문형 리소스를 요청합니다. 앱은 콘텐츠가 다운로드 중임을 알리는 UI를 사용자에게 표시해야 합니다. 자세한 내용은 Apple의 주문형 리소스 가이드를 참조하세요.
Important
앱이 주문형 리소스를 다운로드해야 하는 횟수와 개별 다운로드 크기 사이의 적절한 균형을 맞추기 위해 주의해야 합니다. 새 콘텐츠를 다운로드하기 위해 게임 플레이가 지속적으로 중단되거나 단일 다운로드에 너무 많은 시간이 걸리는 경우 사용자는 앱에 불만을 품을 수 있습니다.
요약
이 문서에서는 tvOS 시스템에서 Xamarin.tvOS 앱에 적용되는 크기, 리소스 및 데이터 스토리지 제한 사항에 대해 설명했습니다. 앱에 대한 훌륭한 사용자 환경을 만들기 위해 이러한 제한 사항 및 제안을 해결하는 옵션을 제공했습니다.