Autore Topic: condivisione database (mysql) webserver e app, alcuni dubbi.  (Letto 176 volte)

Offline charandelodev

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 5 - API 22
  • Sistema operativo:
    win7
condivisione database (mysql) webserver e app, alcuni dubbi.
« il: 19 Ottobre 2016, 11:31:33 CEST »
0
ciao ragazzi, sono nuovo nello sviluppo android, avrei bisogno di vostro aiuto per capire come funziona la gestione dei dati... ad esempio per capire un pò ho creato un sito web molto base per la gestioni dei siti preferiti, come database uso mysql (php), contiene:

tabelle:

login (id,user,password)
categoria_preferiti (id,nome_categoria)
preferiti (id,nome_pref,link,descrizione,id_nome_categoria,id_user)

dopo il login ogni user visualizza suoi preferiti, ma se volessi creare un app condividendo lo stesso database? mantenendo sincrinozzato il tutto...

nel senso,

A- apro l'app
B- eseguo login (se non è stato già eseguito)
C- a questo punto dovrebbe aggiornare/sincronizzare dal server
C.1 - oppure "scorrere" verso il basso per aggiornare (se è gia loggato)

la logica va bene?

obbietivo:

che i dati sulla sessione web e sull'app siano sincronizzati. come avviene questo?   
 

in che modo dovrò gestire il database sull'app??

dovrò usare qualche api/reset/libreria per andare su un webserver? 

se l'utente non ha internet cosa succede con l'app?

grazie in anticipo

Saluti


Offline charandelodev

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 5 - API 22
  • Sistema operativo:
    win7
Re:condivisione database (mysql) webserver e app, alcuni dubbi.
« Risposta #1 il: 20 Ottobre 2016, 12:49:54 CEST »
0
stavo leggendo che per eseguire una sincronizzazione (database) fra un app android (sqlite) e un webserver (mysql) dovrei usare un servizio REST giusto?

sapresti indicarmi qual è il migliore fra OkHTTP, Retrofit, Volley oppure per iniziare cosa utilizzare?

grazie in anticipo.

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:condivisione database (mysql) webserver e app, alcuni dubbi.
« Risposta #2 il: 20 Ottobre 2016, 16:03:02 CEST »
0
A- apro l'app
B- eseguo login (se non è stato già eseguito)
C- a questo punto dovrebbe aggiornare/sincronizzare dal server
C.1 - oppure "scorrere" verso il basso per aggiornare (se è gia loggato)
la logica va bene?
Si, la logica è corretta. Terrei il punto C.1 ma farei in modo che quando riapri la app anche se sei loggato lui fa il refresh dei dati comunque.

Citazione
che i dati sulla sessione web e sull'app siano sincronizzati. come avviene questo?   
in che modo dovrò gestire il database sull'app??
dovrò usare qualche api/reset/libreria per andare su un webserver? 
se l'utente non ha internet cosa succede con l'app?
Dipende da te.
Se vuoi che funzioni solo se hai connessione allora basta appunto sincronizzare quando apri la app o quando scorri verso il basso. Non salvi niente in locale.
Altrimenti puoi salvare i dati come preferisci, su un database della app o anche su un file in un formato comodo da rileggere come json o xml.
A quel punto quanto apri la app prima mostri i dati locali e contemporaneamente fai la richiesta al server.

Citazione
stavo leggendo che per eseguire una sincronizzazione (database) fra un app android (sqlite) e un webserver (mysql) dovrei usare un servizio REST giusto?
sapresti indicarmi qual è il migliore fra OkHTTP, Retrofit, Volley oppure per iniziare cosa utilizzare?
grazie in anticipo.
Non hai bisogno necessariamente di servizi RESTful. In teoria puoi scrivere n servizi con n url diversi e decidere tu cosa passare e cosa ricevere e in quale formato.
Ho usato OkHTTP e Volley, mi sono trovato bene con entrambe. Sono comunque librere client che non hanno niente a che vedere con il modo in cui implementi i servizi sul server.

Offline charandelodev

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 5 - API 22
  • Sistema operativo:
    win7
Re:condivisione database (mysql) webserver e app, alcuni dubbi.
« Risposta #3 il: 21 Ottobre 2016, 15:02:32 CEST »
0
Citazione da: undead
Se vuoi che funzioni solo se hai connessione allora basta appunto sincronizzare quando apri la app o quando scorri verso il basso. Non salvi niente in locale.

Altrimenti puoi salvare i dati come preferisci, su un database della app o anche su un file in un formato comodo da rileggere come json o xml.
A quel punto quanto apri la app prima mostri i dati locali e contemporaneamente fai la richiesta al server.

grazie per la risposta dettagliata.

quindi, facendo come suggerisci l'utente se non ha internet visualizzera l'ultima versione da l'ultima sincronizzazione eseguita, appena c'è internet si aggiorneranno i dati scaricando dal server. corretto? ovviamente se non c'è internet non dovrei dare la possibilità all'utente di inserire i dati in locale (sqlite) o si??

quello è il mio grande dubbio, come realizzare una sincronizzazione corretta?? quali dati hanno priorità?? considerando che l'app sarà il tool mobile per i clienti (se non vogliono usare il sito dal browser mobile) , ho pensato (e forse per motil di voi è scontato) che i dati che hanno priorità sono queli del webserver, già che saranno quelli ad sincronizzarsi per primo o al meno sono lì che vengono sincronizzati....

quindi anche se dall'app in offline eseguo dell'insert su sqlite appena c'è internet sincronizzo sul webserver sarebbe qualcosa del tipo app (sqlite) slave e webserver (mysql) master corretto??

chiedo scusa se per voi sono domande banali, ma sicuramente è meglio che chieda adesso...

grazie in anticipo

Saluti