Compartir a través de


Recursos y almacenamiento de datos de tvOS en Xamarin

En este artículo se explica cómo trabajar con recursos y almacenamiento de datos persistentes en una aplicación de Xamarin.tvOS.

Limitaciones de recursos de tvOS

A diferencia de los dispositivos iOS, el nuevo Apple TV proporciona almacenamiento local y persistente extremadamente limitado para aplicaciones o datos de tvOS. Para elementos muy pequeños (como preferencias de usuario), la aplicación tvOS todavía tiene acceso a NSUserDefaults con un límite de 500 KB de datos. Sin embargo, si la aplicación Xamarin.tvOS necesita conservar grandes cantidades de información, debe almacenar y recuperar esos datos de iCloud.

Además, tvOS limita el tamaño de una aplicación de Apple TV a 200MB. Si la aplicación requiere recursos más allá de este tamaño, tendrán que empaquetarse y cargarse mediante recursos a petición (hasta un 2GB adicional). Dadas estas limitaciones, es fundamental que la descarga correcta de recursos adicionales proporcione la mejor experiencia para los usuarios de la aplicación. Para obtener más información, consulte guía de recursos a peticiónde Apple.

Descargas no persistentes

Cada aplicación de tvOS se proporciona un directorio de caché temporal en el que se descargan sus recursos y recursos adicionales. Este directorio se conservará siempre que la aplicación siga ejecutándose. Sin embargo, como Apple TV necesita liberar espacio para otras aplicaciones o uso del sistema, esta caché se puede eliminar.

Como resultado, la aplicación no puede depender de que el contenido descargado previamente esté disponible la próxima vez que se inicie. La aplicación Xamarin.tvOS siempre debe comprobar la existencia de los recursos necesarios y descargarlos según sea necesario.

Importante

Aunque tiene la capacidad de descargar otros recursos y recursos según sea necesario, Apple advierte contra el consumo de todo el espacio en la memoria caché de la aplicación, ya que puede provocar resultados impredecibles.

Administrar recursos

Como se indicó anteriormente, debido al almacenamiento limitado y no persistente de información disponible para las aplicaciones tvOS, estas restricciones requieren una planeación cuidadosa para crear una excelente experiencia de usuario para la aplicación Xamarin.tvOS.

Almacenamiento de datos de iCloud

Dado que el almacenamiento en Apple TV está limitado, no solo hay un almacenamiento local muy limitado y persistente, la aplicación no tiene ninguna garantía de que cualquier información que haya descargado previamente estará disponible la próxima vez que se ejecute.

Como resultado, la aplicación Xamarin.tvOS debe almacenar los datos de usuario en un almacén de datos de iCloud. Apple proporciona dos opciones de almacenamiento de datos basadas en iCloud para las aplicaciones tvOS:

  • almacenamiento de clave-valor de iCloud (KVS): para pequeños fragmentos de información (menos de 1MB) que la aplicación podría requerir (como preferencias de usuario), puedes usar el almacenamiento de KVS de iCloud. Los datos de KVS de iCloud se sincronizan automáticamente con la nube y todos los dispositivos del usuario que ejecutan la misma aplicación. Para obtener más información, consulte la sección Key-Value Storage de nuestra Introducción a iCloud documento o diseño de Apple para datos clave-valor en iCloud documentación.
  • CloudKit: para el almacenamiento de información más grande (mayor que 1MB), use CloudKit Framework de Apple. A diferencia de iCloud KVS Storage, los datos de CloudKit se pueden compartir entre todos los usuarios de la aplicación (además de ser privados para un solo usuario). Para obtener más información, consulte nuestra documentación de Introducción a CloudKit o el inicio rápido de CloudKit de Apple.

Importante

Apple proporciona herramientas para ayudar a los desarrolladores a tratar correctamente el Reglamento general de protección de datos (RGPD) de la Unión Europea.

Recursos a petición

Los recursos a petición proporcionan contenido y recursos de la aplicación (separados de la agrupación de aplicaciones), que se hospedan en la App Store y se descargan según lo requiera la aplicación. Se pueden atender hasta 2GB adicionales de datos mediante recursos a petición. Permiten que la descarga inicial de la aplicación sea más pequeña (las aplicaciones tvOS están limitadas a un máximo de 200MB), a la vez que proporcionan recursos enriquecidos según sea necesario.

Cuando una aplicación tvOS solicita recursos a petición, el sistema administrará automáticamente la descarga y el almacenamiento de este contenido en el directorio de caché de la aplicación. La aplicación debe esperar a que este contenido se descargue y esté disponible para poder continuar.

Estos recursos pueden seguir almacenados en caché en Apple TV a lo largo de varios lanzamientos de la aplicación, lo que acelera el ciclo de inicio. Sin embargo, la aplicación no puede depender de que ningún contenido descargado previamente esté disponible la próxima vez que se inicie. Consulte la sección descargas no persistentes anterior para obtener más información.

UsaS Xcode para crear conjuntos de contenido relacionado (como todos los recursos para el nivel de juego 2) asociados a una etiqueta de recurso de tipo give. Más adelante, la aplicación solicitará un recurso a petición especificando esta etiqueta de recurso. La aplicación debe presentar una interfaz de usuario al usuario que indique que se está descargando el contenido. Para obtener más información, consulte guía de recursos a peticiónde Apple.

Importante

Se debe tener cuidado para alcanzar el equilibrio adecuado entre el número de veces que la aplicación tiene que descargar recursos a petición y el tamaño de las descargas individuales. El usuario puede frustrarse con la aplicación si el juego se interrumpe constantemente para descargar contenido nuevo o si una sola descarga tarda demasiado tiempo.

Resumen

En este artículo se han tratado las limitaciones de tamaño, recursos y almacenamiento de datos que el sistema tvOS ha colocado en una aplicación de Xamarin.tvOS. Ha presentado opciones para solucionar estas limitaciones y sugerencias para crear una excelente experiencia de usuario para la aplicación.