Introdução ao armazenamento de dados em aplicativos Xamarin.iOS
Quando usar um banco de dados
Embora os recursos de armazenamento e processamento dos dispositivos móveis estejam aumentando, os telefones e tablets ainda estão atrasados em relação aos seus equivalentes de desktop e laptop. Por esse motivo, vale a pena dedicar algum tempo para planejar a arquitetura de armazenamento de dados para seu aplicativo, em vez de apenas assumir que um banco de dados é a resposta certa o tempo todo. Há uma série de opções diferentes que se adequam a diferentes requisitos, tais como:
- Preferências – O iOS oferece um mecanismo integrado para armazenar pares de chave-valor simples de dados. Se você estiver armazenando configurações de usuário simples ou pequenos pedaços de dados (como informações de personalização), use os recursos nativos da plataforma para armazenar esse tipo de informação. Para iOS, você também pode aproveitar a sincronização do iCloud para esses dados, tanto para backup quanto para sincronização para usuários com vários dispositivos.
- Arquivos de texto – Entrada do usuário ou caches de conteúdo baixado (por exemplo. HTML) pode ser armazenado diretamente no sistema de arquivos. Use uma convenção de nomenclatura de arquivo apropriada para ajudá-lo a organizar os arquivos e localizar dados.
- Arquivos de dados serializados – Os objetos podem ser persistidos como XML ou JSON no sistema de arquivos. O .NET framework inclui bibliotecas que facilitam a serialização e a desserialização de objetos. Use nomes apropriados para organizar arquivos de dados.
- Banco de dados – O mecanismo de banco de dados SQLite está disponível para iOS e é útil para armazenar dados estruturados que você precisa consultar, classificar ou manipular de outra forma. O armazenamento de banco de dados é adequado para listas de dados com muitas propriedades.
- Arquivos de imagem – Embora seja possível armazenar dados binários no banco de dados em um dispositivo móvel, é recomendável armazená-los diretamente no sistema de arquivos. Se necessário, você pode armazenar os nomes de arquivos em um banco de dados para associar a imagem a outros dados. Ao lidar com imagens grandes, ou muitas imagens, é uma boa prática planejar uma estratégia de cache que exclua arquivos que você não precisa mais para evitar consumir todo o espaço de armazenamento do usuário.
Se um banco de dados for o mecanismo de armazenamento correto para seu aplicativo, o restante deste documento discute como usar o SQLite na plataforma Xamarin.
Vantagens de usar um banco de dados
Há uma série de vantagens em usar um banco de dados SQL em seu aplicativo móvel:
- Os bancos de dados SQL permitem o armazenamento eficiente de dados estruturados.
- Dados específicos podem ser extraídos com consultas complexas.
- Os resultados da consulta podem ser classificados.
- Os resultados da consulta podem ser agregados.
- Os desenvolvedores com habilidades de banco de dados existentes podem utilizar seus conhecimentos para projetar o banco de dados e o código de acesso a dados.
- O modelo de dados do componente de servidor de um aplicativo conectado pode ser reutilizado (no todo ou em parte) no aplicativo móvel.
Mecanismo de banco de dados SQLite
SQLite é um mecanismo de banco de dados de código aberto que foi adotado pela Apple para sua plataforma móvel. O mecanismo de banco de dados SQLite é integrado ao iOS, portanto, não há trabalho adicional para os desenvolvedores aproveitarem isso. O SQLite é adequado para desenvolvimento móvel multiplataforma porque:
- O mecanismo de banco de dados é pequeno, rápido e facilmente portátil.
- Um banco de dados é armazenado em um único arquivo, que é fácil de gerenciar em dispositivos móveis.
- O formato de arquivo é fácil de usar em todas as plataformas: seja de 32 ou 64 bits e sistemas de grande ou pequeno porte.
- Ele implementa a maior parte do padrão SQL92.
Como o SQLite foi projetado para ser pequeno e rápido, há algumas ressalvas sobre seu uso:
- Não há suporte para alguma sintaxe de junção EXTERNA.
- Somente as tabelas RENAME e ADDCOLUMN são suportadas. Não é possível executar outras modificações no esquema.
- As exibições são somente leitura.
Você pode aprender mais sobre SQLite no site - SQLite.org - no entanto, todas as informações que você precisa para usar SQLite com Xamarin estão contidas neste documento e exemplos associados. O mecanismo de banco de dados SQLite é interno para todas as versões do iOS. Embora não seja abordado neste capítulo, o SQLite também está disponível para uso em aplicativos do Windows Phone e do Windows.
Windows e Windows Phone
O SQLite também pode ser usado em plataformas Windows, embora essas plataformas não sejam abordadas neste documento. Leia mais no estudo de caso da Tasky e reveja o blog de Tim Heuer.