Autore Topic: Come gestire i dati quando internet non c'è  (Letto 332 volte)

Offline merlinimat

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Come gestire i dati quando internet non c'è
« il: 28 Gennaio 2016, 00:20:26 CET »
0
Ciao a tutti.
Sto sviluppando un'applicazione che attinge e inserisce dati tramite un webservice implementato su di un server remoto.
Tutto funziona, ma se il dispositivo non è connesso a Internet non posso, ovviamente, inserire o ottenere dati.
La mia domanda non è tecnica ma d'approccio.

Come gestite questa situazione volendo poter permettere all'utente di usare l'applicazione anche quando la connessione non è presente?
È utile questo approccio o meglio procedere solo quando sia ha la connessione?
In caso affermativo come fare questo? SQLite interno? Come gestire i dati da uploadare e downloadare una volta ritornata la connessione?
Il gioco vale la candela?

Grazie mille!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1184
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Come gestire i dati quando internet non c'è
« Risposta #1 il: 28 Gennaio 2016, 08:55:38 CET »
0
Io avevo tale problema. In pratica offirvo dati tramite richieste a pagine che mi davano json. Inoltre salvavo tali json anche come file all'interno del telefono.
Per quello che devo farci la scrittura su file risulta giusta nella mia app nonostante sia più lento rispetto alla scrittura su DB interno come SQLite.
La cosa però è molto funzionale. Se hai internet l'indirizzo da cui prendo i dati è: http://tuoserver.it/dati.json (esempio) , mentre senza internet di basta inserire un link del file presente nel cell. Le librerie tipo okhttp hanno lo stesso output, e quindi sia che prendo i dati da un json sul telefono o da un json su server l'implementazione di come visualizzare i dati non cambia.

Offline merlinimat

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Re:Come gestire i dati quando internet non c'è
« Risposta #2 il: 28 Gennaio 2016, 10:53:02 CET »
0
Si potrebbe fare anche così, ma solo se hai dati che raramente cambiano.
Nel mio caso ho 6 tabelle. Gli utenti possono da browser (tramite un sito web) inserire record sul database centrale in ognuna delle sei tabelle. Nello stesso tempo uno stesso utente può inserire record sul db centrale tramite l'applicazione Android.
Quando il dispositivo Android non è connesso ad Internet, l'utente può comunque usare l'applicazione.
Nello stesso tempo però l'utente può accedere al sito web e aggiungere record da lì.

Ora, quando il dispositivo Android si riconnette alla rete, come decido cosa inviare al db centrale tra i record che l'utente ha inserito in assenza di rete sull'app? Quali dati decido invece di richiedere al database centrale inseriti dal sito?

Quello che voglio capire è se c'è un metodo condiviso per affrontare questo problema, magari nativo. E sopratutto, secondo il pensiero generale degli sviluppatori di questo momento, vale la pena percorrere una strada del genere. Molte app  che vedo adesso se non hai rete ti notificano dicendo 'riprova quando c'è copertura'.

Voglio capire se ha senso permettere l'utilizzo di un app gestita a webservice anche senza internet.

Una volta che, tramite questa discussione, si riesce a trovare una motivazione valida all'utilizzo di uno dei due metodi (funziona solo con la rete/funziona anche senza rete), posso percorrere entrambe le strade indifferentemente, scelta che però va giustificata.

Scusate la lunghezza, ma è più una scelta progettuale che tecnica. Poi una volta avuto un verdetto distilleremo anche la soluzione tecnica.

Grazie!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1184
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Come gestire i dati quando internet non c'è
« Risposta #3 il: 28 Gennaio 2016, 11:03:50 CET »
0
Non ne vale la pena. Poi sopratutto nel 2016 dove tutti hanno una connessione a internet wifi o 3g, è veramente inutile tenere conto di tale aspetto.

Postresti comuque salvare dei dati in locale. Magari online i record "Partita" hanno 13 campi. In locale puoi salvare i record partita con soli 3 campi. Non c'è niente di automatico come dici te.