Introduzione alle Archiviazione dei dati nelle app Xamarin.iOS
Quando usare un database
Mentre le funzionalità di archiviazione e elaborazione dei dispositivi mobili stanno aumentando, i telefoni e i tablet continuano a ritardare dietro le loro controparti desktop e laptop. Per questo motivo vale la pena prendere del tempo per pianificare l'architettura di archiviazione dei dati per l'app invece di presupporre che un database sia la risposta giusta per tutto il tempo. Esistono diverse opzioni che soddisfano requisiti diversi, ad esempio:
- Preferenze : iOS offre un meccanismo predefinito per l'archiviazione di semplici coppie chiave-valore di dati. Se si archiviano impostazioni utente semplici o piccole parti di dati ,ad esempio informazioni sulla personalizzazione, usare le funzionalità native della piattaforma per archiviare questo tipo di informazioni. Per iOS è anche possibile sfruttare la sincronizzazione di iCloud per questi dati, sia per il backup che per la sincronizzazione per gli utenti con più dispositivi.
- File di testo: input dell'utente o cache del contenuto scaricato (ad esempio, HTML) può essere archiviato direttamente nel file system. Usare una convenzione di denominazione file appropriata per organizzare i file e trovare i dati.
- File di dati serializzati: gli oggetti possono essere salvati in modo permanente come XML o JSON nel file system. .NET Framework include librerie che semplificano la serializzazione e la de-serializzazione degli oggetti. Usare i nomi appropriati per organizzare i file di dati.
- Database : il motore di database SQLite è disponibile per iOS ed è utile per archiviare dati strutturati su cui è necessario eseguire query, ordinare o modificare in altro modo. L'archiviazione del database è adatta agli elenchi di dati con molte proprietà.
- File di immagine: anche se è possibile archiviare i dati binari nel database in un dispositivo mobile, è consigliabile archiviarli direttamente nel file system. Se necessario, è possibile archiviare i nomi file in un database per associare l'immagine ad altri dati. Quando si gestiscono immagini di grandi dimensioni o molte immagini, è consigliabile pianificare una strategia di memorizzazione nella cache che elimina i file che non è più necessario evitare di usare tutto lo spazio di archiviazione dell'utente.
Se un database è il meccanismo di archiviazione appropriato per l'app, la parte restante di questo documento illustra come usare SQLite nella piattaforma Xamarin.
Vantaggi dell'uso di un database
L'uso di un database SQL nell'app per dispositivi mobili offre numerosi vantaggi:
- I database SQL consentono l'archiviazione efficiente dei dati strutturati.
- È possibile estrarre dati specifici con query complesse.
- È possibile ordinare i risultati della query.
- I risultati delle query possono essere aggregati.
- Gli sviluppatori con competenze esistenti nel database possono usare le proprie conoscenze per progettare il codice di accesso ai dati e il database.
- Il modello di dati del componente server di un'applicazione connessa può essere riutilizzato (in parte o nel complesso) nell'applicazione per dispositivi mobili.
SQLite motore di database
SQLite è un motore di database open source adottato da Apple per la piattaforma mobile. Il motore di database SQLite è integrato in iOS, quindi non è disponibile alcun lavoro aggiuntivo per gli sviluppatori per sfruttarne i vantaggi. SQLite è particolarmente adatto allo sviluppo di applicazioni per dispositivi mobili multipiattaforma perché:
- Il motore di database è piccolo, veloce e facilmente portabile.
- Un database viene archiviato in un singolo file, facile da gestire nei dispositivi mobili.
- Il formato di file è facile da usare su più piattaforme: sistemi di 32 o 64 bit e big-endian o little-endian.
- Implementa la maggior parte dello standard SQL92.
Poiché SQLite è progettato per essere piccolo e veloce, ci sono alcune avvertenze sull'uso:
- La sintassi OUTER join non è supportata.
- Sono supportate solo la tabella RENAME e ADDCOLUMN. Non è possibile eseguire altre modifiche allo schema.
- Le visualizzazioni sono di sola lettura.
Altre informazioni su SQLite sono disponibili nel sito Web, SQLite.org , ma tutte le informazioni necessarie per usare SQLite con Xamarin sono contenute in questo documento e negli esempi associati. Il motore di database SQLite è integrato in tutte le versioni di iOS. Anche se non trattato in questo capitolo, SQLite è disponibile anche per l'uso nelle applicazioni Windows Telefono e Windows.
Windows e Windows Phone
SQLite può essere usato anche sulle piattaforme Windows, anche se tali piattaforme non sono trattate in questo documento. Per altre informazioni, vedere il case study tasky e consultare il blog di Tim Heuer.