Come funziona l'accesso offline per le applicazioni mobili?
Il supporto mobile in un'applicazione mobile è un argomento complesso. Può portare valore al business in certi scenari, ma complica anche lo sviluppo e aumenta significativamente i costi per tutte le funzionalità future. Gli stessi problemi si verificano con il supporto mobile offline. I problemi principali sono la sincronizzazione e la duplicazione della logica di business.
Il processo di base è che, quando l'app è online, interagisce con il server tramite chiamate API e poi memorizza le informazioni in un database locale.
Ci sono due opzioni per il database locale nel caso di iOS - Core Data nativo (che si basa su SQLite) e altri database di terze parti come Couchbase. Una volta che i dati sono salvati, se il dispositivo va offline, si verificano i seguenti problemi:
- ogni modifica apportata ai dati locali deve essere tracciata in modo che, quando il dispositivo torna online, possa essere inviata al server;
- poiché non c'è connessione internet, l'applicazione non può più raggiungere il server per determinare come agire in determinate condizioni; quindi, l'applicazione deve essere in grado di rispondere offline a domande come "l'utente ha il permesso di cancellare questo contatto"?
- questo significa che la logica di business - le regole che il sistema deve rispettare - deve ora essere codificata sul server, oltre che sul client.
Ora immaginate un gran numero di dispositivi che operano con connessione intermittente al server; un utente può cambiare un contatto nella vostra applicazione, mentre un altro cancella quel contatto. Entrambi sono offline; quando tornano online (l'ordine non può essere previsto), l'algoritmo deve sapere come affrontare situazioni "conflittuali" come il tentativo di cancellare un contatto che non esiste più.
Ci sono diverse strategie per affrontare questo problema ma, fondamentalmente, tutte hanno dei pro e dei contro. Due possibili soluzioni sarebbero le seguenti:
(A) portare la logica di business sul dispositivo; rollare la propria soluzione memorizzando i dati in core data e implementando il proprio algoritmo di sincronizzazione
(B) lavorare con un database di terze parti che gestisce il processo di sincronizzazione per voi; le due possibili opzioni qui sarebbero Couchbase Lite con Coucbase Sync Gateway o Firebase.
Articoli simili
- Come funziona un GPS offline come le mappe offline di Google?
- Qual è la migliore app offline Android per la progettazione di interfacce utente per applicazioni mobili Android?
- Quali sono le buone app/giochi offline per passare il tempo quando non c'è accesso a internet?
- Perché Apple non permette il libero accesso all'NFC sui dispositivi mobili per gli sviluppatori, al contrario di Android?