Ресурсы и данные tvOS служба хранилища в Xamarin

В этой статье рассматривается работа с ресурсами и сохраняемым хранилищем данных в приложении Xamarin.tvOS.

Ограничения ресурсов tvOS

В отличие от устройств iOS, новый Apple TV предоставляет чрезвычайно ограниченное постоянное, локальное хранилище для приложений или данных tvOS. Для очень небольших элементов (таких как пользовательские предпочтения), ваше приложение tvOS по-прежнему имеет доступ с NSUserDefaults ограничением в 500 КБ данных. Однако если приложение Xamarin.tvOS должно сохранять большие объемы информации, оно должно хранить и извлекать эти данные из iCloud.

Кроме того, tvOS ограничивает размер приложения Apple TV до 200 МБ. Если приложению требуются ресурсы, превышающие этот размер, их необходимо упаковать и загрузить с помощью ресурсов по запросу (до дополнительных 2 ГБ). Учитывая эти ограничения, важно правильно загрузить дополнительные ресурсы, чтобы обеспечить лучший интерфейс для пользователей вашего приложения. Дополнительные сведения см. в руководстве по ресурсам Apple по запросу.

Непрекращающиеся скачиваемые файлы

Каждое приложение tvOS предоставляет временный каталог кэша, в который загружаются дополнительные ресурсы и ресурсы. Этот каталог будет сохранен до тех пор, пока приложение по-прежнему работает. Однако, так как Apple TV должен освободить место для других приложений или системного использования, этот кэш можно удалить.

В результате приложение не может полагаться на скачанный ранее контент, доступный при следующем запуске. Приложение Xamarin.tvOS всегда должно проверка для существования необходимых ресурсов и скачать их по мере необходимости.

Внимание

Хотя у вас есть возможность загружать другие ресурсы и ресурсы по мере необходимости, Apple предупреждает об использовании всего пространства в кэше приложения, так как это может привести к непредсказуемым результатам.

Управление ресурсами

Как упоминалось выше, из-за ограниченного непрекращающегося хранения информации, доступной для приложений tvOS, эти ограничения требуют тщательного планирования для создания отличного пользовательского интерфейса для вашего приложения Xamarin.tvOS.

Служба хранилища данных iCloud

Так как хранилище на Apple TV ограничено, но не только существует очень ограниченное локальное хранилище, ваше приложение не гарантирует, что любые данные, которые он ранее скачал, будут доступны при следующем запуске.

В результате приложение Xamarin.tvOS должно хранить любые пользовательские данные в хранилище данных iCloud. Apple предоставляет два варианта хранения данных на основе iCloud для ваших приложений tvOS:

  • iCloud Key-Value служба хранилища (KVS) — для небольших фрагментов информации (менее 1 МБ), для которых может потребоваться ваше приложение (например, настройки пользователя), можно использовать служба хранилища iCloud KVS. Данные iCloud KVS автоматически синхронизируются с облаком и все устройства пользователя, на которых запущено одно и то же приложение. Дополнительные сведения см. в разделе "Ключ-значение" служба хранилища нашего документа "Введение в iCloud" или "Проектирование Apple для данных с ключом-значение" в документации по iCloud.
  • CloudKit — для хранения больших фрагментов информации (больше 1 МБ) используйте Apple CloudKit Framework. В отличие от служба хранилища iCloud KVS, данные CloudKit можно совместно использовать среди всех пользователей приложения (а также частных для одного пользователя). Дополнительные сведения см. в документации по CloudKit или кратком запуске Apple CloudKit.

Внимание

Компания Apple предоставляет инструменты, которые помогают разработчикам надлежащим образом соблюдать Общий регламент по защите данных Европейского союза (GDPR).

Ресурсы по запросу

Ресурсы по запросу предоставляют содержимое и ресурсы приложения (отдельно от пакета приложений), размещенные в App Store и скачанные в соответствии с требованиями приложения. До дополнительных 2 ГБ данных можно обслуживать с помощью ресурсов по запросу. Они позволяют начальному скачиванию приложений быть меньше (приложения tvOS ограничены не более 200 МБ), при этом по-прежнему предоставляются богатые ресурсы по мере необходимости.

Когда приложение tvOS запрашивает ресурсы по запросу, система автоматически управляет загрузкой и хранилищем этого содержимого в каталог кэша приложения. Приложение должно ждать загрузки и доступности этого содержимого, прежде чем оно сможет продолжить.

Эти ресурсы могут по-прежнему кэшироваться в Apple TV на протяжении нескольких запусков вашего приложения, что позволяет ускорить запуск цикла. Однако приложение не может полагаться на любое ранее скачаемое содержимое, доступное при следующем запуске. Дополнительные сведения см. в разделе "Не постоянные загрузки" выше.

Xcode используется для создания пакетов связанного содержимого (например, всех ресурсов для уровня игры 2), связанных с присвоенным тегом ресурса. Позже приложение запросит ресурс по запросу, указав этот тег ресурса. Приложение должно представить пользовательский интерфейс пользователю, заявив, что скачиваемое содержимое. Дополнительные сведения см. в руководстве по ресурсам Apple по запросу.

Внимание

Необходимо обеспечить правильный баланс между количеством раз, когда приложение должно скачать ресурсы по запросу и размер отдельных скачиваемых файлов. Пользователь может быть разочарован вашим приложением, если игровой процесс прерывается постоянно, чтобы скачать новое содержимое или если одно скачивание занимает слишком много времени.

Итоги

В этой статье рассматриваются ограничения размера, ресурсов и хранилища данных, размещенные в приложении Xamarin.tvOS системой tvOS. Он представил варианты для решения этих ограничений и предложений для создания отличного пользовательского интерфейса для вашего приложения.