Mostrare feed senza internet

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
Salve a tutti, vorrei costruire un'app che lavori con Java e XML, connessa ad un database remoto MySQL tramite API PHP (in modo da poter fare anche un sito web connesso allo stesso database). Il mio dubbio è: app come Instagram, quando non c'è connessione internet, mostrano il messaggio "Impossibile aggiornare il feed" ma intanto fanno anche vedere gli ultimi post, commenti, ecc. che erano stati caricati l'ultima volta in cui si era connessi al WiFi. Leggendo sul web mi pare di aver capito che per far questo bisognerebbe salvare i dati (post, ecc.) anche su un database locale SQLite, in modo da poter visualizzare tutto anche senza internet, e aggiornarlo quando torna internet. La mia domanda è: così facendo, è possibile salvare così tanti dati in locale, senza che l'app venga rallentata?
Grazie
 

sbolde91

Nuovo Utente
19 Mar 2021
9
0
1
Salve a tutti, vorrei costruire un'app che lavori con Java e XML, connessa ad un database remoto MySQL tramite API PHP (in modo da poter fare anche un sito web connesso allo stesso database). Il mio dubbio è: app come Instagram, quando non c'è connessione internet, mostrano il messaggio "Impossibile aggiornare il feed" ma intanto fanno anche vedere gli ultimi post, commenti, ecc. che erano stati caricati l'ultima volta in cui si era connessi al WiFi. Leggendo sul web mi pare di aver capito che per far questo bisognerebbe salvare i dati (post, ecc.) anche su un database locale SQLite, in modo da poter visualizzare tutto anche senza internet, e aggiornarlo quando torna internet. La mia domanda è: così facendo, è possibile salvare così tanti dati in locale, senza che l'app venga rallentata?
Grazie

L'app non viene rallentata se il DB è grande (ovviamente le query devono essere fatte bene).

Per fare quanto dici hai bisogno di:
1) Applicazione Android che fa chiamate HTTP verso un server
2) API REST per gestire queste richieste e ritornare i dati
3) Un DB remoto + Un DB locale per l'applicazione

Poi ti puoi giostrare le funzionalità in questo modo:
Apro applicazione -> MainActivity (che mostra una lista di libri), quindi:

- chiamata HTTP al server che richiede tutti i libri GET /books
- arriva il JSON/XML con i dati, li salvi su DB e mostri una ListView di Libri ... se chiudi l'app e la riapri riparti dal primo punto (se non hai internet? Niente chiamata HTTP e carichi i dati locali)

Click su un libro
- chiamata HTTP al server che richiede tutti i libri GET /books/{bookId}
- arriva il JSON/XML con tutti i dati del singolo libro, li salvi su DB e mostri il dettaglio libro ... se chiudi l'app e la riapri riparti dal primo punto (se non hai internet? Niente chiamata HTTP e carichi i dati locali)

e cosi via....

La domanda fondamentale è... devi gestire anche la creazione di dati?
No...allora quanto detto sopra va bene
Si .... la cosa si fa più complessa perchè hai due casi:
1) Creazione Online
2) Creazione Online Offline

Il primo caso è semplice perchè crei dati solo se hai connessione Internet e quindi in tempo reale sul DB remoto
Il secondo è più complesso perchè devi gestire la sincronizzazione.
Se tu crei n dati offline sul DB locale, quando tornerà internet dovrai sincronizzare i due DB e non è per niente una cosa divertente da fare :D :D :D

Più o meno io la imposterei cosi.
Spero di esserti stato d'aiuto.
 

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
Grazie mille per la risposta, diciamo che avevo un po' archiviato quel progetto, ma sono sicuro che tra un po' di tempo mi serviranno queste cose che hai detto.

devi gestire anche la creazione di dati?
No...allora quanto detto sopra va bene
Si .... la cosa si fa più complessa perchè hai due casi:
1) Creazione Online
2) Creazione Online Offline
Purtroppo qui la risposta è sì... Quindi prima di iniziare mi dovrò informare bene sulla sincronizzazione.

Comunque grazie mille per questa panoramica, mi è stata molto d'aiuto per capire meglio cosa dovrò fare.
Buona giornata e grazie ancora
 

sbolde91

Nuovo Utente
19 Mar 2021
9
0
1
Grazie mille per la risposta, diciamo che avevo un po' archiviato quel progetto, ma sono sicuro che tra un po' di tempo mi serviranno queste cose che hai detto.


Purtroppo qui la risposta è sì... Quindi prima di iniziare mi dovrò informare bene sulla sincronizzazione.

Comunque grazie mille per questa panoramica, mi è stata molto d'aiuto per capire meglio cosa dovrò fare.
Buona giornata e grazie ancora

Prima di buttarti nella sincronizzazione falla funzionare SOLO se è online.
Per farti male con la sincronizzazione c'è sempre tempo :D :D

Te lo dico per esperienza...mi è capitato di lavorare su un'applicazione che sincronizzava i dati quanto era online ed è stato un bagno di sangue :D

Figurati, buona giornata anche a te
 

DianaGreece49

Nuovo Utente
7 Apr 2021
5
0
1
Comunque grazie mille per questa panoramica, mi è stata molto d'aiuto per capire meglio cosa dovrò fare.
Buona giornata e grazie ancora
 
Discussioni simili
Autore Titolo Forum Risposte Data
M mostrare un feed rss con PHP PHP 2
M Mostrare testo (o parte di esso) in base a utente PHP 0
Cosina mostrare contenuto da file txt PHP 2
A Mostrare dati database per pagine PHP 2
Cosina Mostrare immagini da una cartella, ma solo un numero definito PHP 12
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
M [PHP] Logica esatta sul mostrare contenuto se inattivo con Codeigniter PHP 2
M [PHP] Mostrare risultati di una tabella ma solo se ID è attivo PHP 0
A [Javascript] Mostrare un marker se è vicino al risultato di ricerca con google maps Javascript 3
T mostrare il riultato di uno script php Ajax 2
C [Javascript] Mostrare un div cliccando una checkbox Javascript 0
T mostrare solo una volta il risulato doppio Database 10
E [PHP] GUMP: mostrare gli errori tramite array PHP 1
Bryan [PHP] Far mostrare tutte le tabelle contenenti in un database PHP 2
N invia.php solo alcuni dati da mostrare PHP 4
S [Javascript] Slider html: Mostrare immagini su 4 colonne Javascript 20
K Mostrare tabella PHP e MySQL PHP 0
G non mostrare un determinato campo se PHP 1
J Mostrare mese intero (come cambio il codice?!) Java 1
M Mostrare il contenuto del database e convertire la data da timestamp PHP 2
D mostrare contenuto caricato dinamicamente da database PHP 12
M problema mostrare data di registrazione formattata in italiano PHP 8
M Mostrare immagini dal database in una propria pagina PHP 2
R Mostrare articoli correlati in php PHP 2
M Mostrare o meno banner pubblicitari a seconda la risoluzione del device Javascript 10
N Mostrare campi form se ho selezionato un determinato campo PHP 0
A consiglio uso jquery php per mostrare parte di un form PHP 6
A consiglio uso jquery per mostrare parte di un form jQuery 0
A Mostrare tutti i record di una tabella prendendo un valore da un altra tabella MySQL 1
N Mostrare valori databse in un modal pop up con PHP e MySQL PHP 5
D mostrare nascondere sottomenu Javascript 1
C Mostrare i campi vuoti al caricamento di una maschera MS Access 0
N [RISOLTO] Mostrare a video le checkbox selezionate con PHP e MySQL PHP 4
gandalf1959 [risolto] Mostrare a video il risultato di una query con stesso anno e mesi diversi PHP 13
D Mostrare su una pagina web dati provenienti da un Database PHP 0
P Mostrare punti interesse du una mappa di google maps Javascript 1
giancadeejay Mostrare immagine solo per 2 secondi Javascript 2
A Mostrare video style facebook Javascript 0
H Funzione onmouseover per mostrare un box con un link da cliccare? Javascript 3
P Mostrare nome utente (era: ciao) PHP 1
U Mostrare una pagina html esterna PHP 8
D mostrare contenuto tabella database dopo la selezione PHP 3
F mostrare una sola volta un record che si ripete PHP 2
M pulsante per mostrare filmato swf HTML e CSS 12
S mostrare variabili da un js esterno Javascript 2
P Facebook Feed per wordpress WordPress 0
C [HTML] Inserimento feed/rss di Mr.Webmaster sul proprio sito HTML e CSS 1
L Open Graph pubblica nella sezione Post invece che in News Feed PHP 0
B Feed rss da fare in php PHP 0
filippino Not a valid feed url, missing feed title WordPress 0

Discussioni simili