Introducción al almacenamiento de datos en aplicaciones de Xamarin.iOS
Cuándo usar una base de datos
Mientras que las capacidades de almacenamiento y procesamiento de dispositivos móviles están aumentando, los teléfonos y las tabletas estando por detrás de sus homólogos de sobremesa y portátiles. Por esta razón, vale la pena dedicar algún tiempo a planear la arquitectura de almacenamiento de datos para la aplicación en lugar de suponer que una base de datos es la respuesta correcta todo el tiempo. Hay una serie de opciones diferentes que se adaptan a diferentes requisitos, como:
- Preferencias: iOS ofrece un mecanismo integrado para almacenar pares clave-valor simples de datos. Si va a almacenar configuraciones de usuario simples o pequeños fragmentos de datos (como información de personalización), use las características nativas de la plataforma para almacenar este tipo de información. Para iOS, también puede aprovechar la sincronización de iCloud para estos datos, tanto para la copia de seguridad como para la sincronización de usuarios con varios dispositivos.
- Archivos de texto: entrada de usuario o caché del contenido descargado (por ejemplo, HTML) se puede almacenar directamente en el sistema de archivos. Use una convención de nomenclatura de archivos adecuada para ayudarle a organizar los archivos y buscar datos.
- Archivos de datos serializados: los objetos se pueden conservar como XML o JSON en el sistema de archivos. .NET Framework incluye bibliotecas que facilitan la serialización y deserialización de objetos. Use los nombres adecuados para organizar los archivos de datos.
- Base de datos: el motor de base de datos de SQLite está disponible para iOS y es útil para almacenar datos estructurados que necesita consultar, ordenar o manipular de otro modo. El almacenamiento de base de datos es adecuado para listas de datos con muchas propiedades.
- Archivos de imagen: aunque es posible almacenar datos binarios en la base de datos en un dispositivo móvil, se recomienda almacenarlos directamente en el sistema de archivos. Si es necesario, puede almacenar los nombres de archivo en una base de datos para asociar la imagen a otros datos. Cuando se trabaja con imágenes grandes o muchas imágenes, se recomienda planear una estrategia de almacenamiento en caché que elimine los archivos que ya no necesite para evitar consumir todo el espacio de almacenamiento del usuario.
Si una base de datos es el mecanismo de almacenamiento adecuado para la aplicación, el resto de este documento describe cómo usar SQLite en la plataforma de Xamarin.
Ventajas de usar una base de datos
Hay una serie de ventajas para usar una base de datos SQL en la aplicación móvil:
- Las bases de datos SQL permiten un almacenamiento eficaz de datos estructurados.
- Los datos específicos se pueden extraer con consultas complejas.
- Los resultados de la consulta se pueden ordenar.
- Los resultados de la consulta se pueden agregar.
- Los desarrolladores con aptitudes de base de datos existentes pueden usar sus conocimientos para diseñar la base de datos y el código de acceso a datos.
- El modelo de datos del componente de servidor de una aplicación conectada se puede volver a usar (en su totalidad o en parte) en la aplicación móvil.
Motor de base de datos de SQLite
SQLite es un motor de base de datos de código abierto que ha sido adoptado por Apple para su plataforma móvil. El motor de base de datos SQLite está integrado en iOS, por lo que no hay ningún trabajo adicional para que los desarrolladores lo aprovechen. SQLite es adecuado para el desarrollo móvil multiplataforma porque:
- El motor de base de datos es pequeño, rápido y fácilmente portátil.
- Una base de datos se almacena en un único archivo, que es fácil de administrar en dispositivos móviles.
- El formato de archivo es fácil de usar entre plataformas: ya sea de 32 o 64 bits, y sistemas big-o little-endian.
- Implementa la mayoría del estándar SQL92.
Dado que SQLite está diseñado para ser pequeño y rápido, hay algunas advertencias sobre su uso:
- No se admite alguna sintaxis de combinación externa.
- Solo se admiten tablas RENAME y ADDCOLUMN. No puede realizar otras modificaciones en el esquema.
- Las vistas son de solo lectura.
Puede obtener más información sobre SQLite en el sitio web - SQLite.org. Sin embargo, toda la información que necesita para usar SQLite con Xamarin se encuentra en este documento y ejemplos asociados. El motor de base de datos de SQLite está integrado en todas las versiones de iOS. Aunque no se trata en este capítulo, SQLite también está disponible para su uso en aplicaciones de Windows Phone y Windows.
Windows y Windows Phone
SQLite también se puede usar en plataformas Windows, aunque esas plataformas no se tratan en este documento. Obtenga más información en el caso práctico Tasky y revise el blog de Tim Heuer.