2013-07-16 21 views
19

Sto pianificando di implementare un'app e sono arrivato a un punto in cui non so quale sia l'approccio migliore.Come sincronizzare i dati tra diversi dispositivi

Scenario:

Ho un app dove sto facendo una lista delle cose da fare e sto aggiungendo 3 articoli. Uso il mio telefono per questo. Quindi prendo il mio tablet e voglio continuare ad aggiungere un'altra attività. Poi dopo un po 'prendo il telefono di mia moglie e voglio aggiungere 2 nuovi compiti.

Fondamentalmente voglio avere un modo molto semplice di archiviare i compiti online ed essere in grado di sincronizzarli con l'app.

sto vedendo due possibili modi:

  • avere un server web con un database + web chiamate di servizio. Questo ha lo svantaggio di avere un host pagato, imparare alcune tecniche aggiuntive del servizio web mysql +.

  • memorizzare in qualche modo i dati su cloud e consentire all'app di accedere per accedere a un account che archivia il file. Sto pensando a qualcosa come Google Drive/Dropbox. Ma non so come potrei sincronizzare solo i valori aggiornati, non l'intero file. Perché sto pensando, se memorizzo tutte le attività in un unico file, ogni volta che aggiorno il file, dovrò caricarlo completamente, il che non è l'approccio migliore.

Sono aperto a qualsiasi consiglio. Quale approccio consiglieresti?

+0

Google Cloud Save sembra la soluzione perfetta, ma non è ancora stato rilasciato ... http: //developer.android.com/google/gcs/index.html –

risposta

6

Vorrei esaminare Google App Engine o Amazon Web Services. Entrambi ti danno una quota gratuita di utilizzo al mese e se vai oltre, inizi a pagare, è probabile che non superi il livello gratuito per un po '.

AWS è un po 'più maturo rispetto GAE attualmente e sembrava di essere un po' più facile da implementare che GAE è stato quando ero alla ricerca di loro

+3

Grazie per le opzioni. Anche DropBox Datastore api sembra davvero una bella alternativa gratuita ... – Alin

2

Date un'occhiata al nuovo corso di formazione per le schede di sincronizzazione: http://developer.android.com/training/sync-adapters/index.html per la nozioni di base sull'invio di dati dal dispositivo a un server.

Sul dispositivo Android, suggerisco di memorizzare le attività in un fornitore di contenuti. Questo ti aiuta a tenere traccia degli aggiornamenti dall'ultima volta che hai sincronizzato. È quindi possibile interrogare il provider durante la sincronizzazione, inviare solo i dati che sono stati aggiornati e archiviare i dati sul server.

Probabilmente dovresti memorizzare l'ultima ora di aggiornamento sul dispositivo, in modo che tu possa sapere se il server contiene dati che non sono ancora presenti sul dispositivo. Ricorda che dovrai anche scaricare le attività se desideri sincronizzare tutti i dispositivi.

0

Puoi dare un'occhiata al nostro quadro Rethync (freeware con sorgente). Usandolo puoi semplificare il compito di rilevare le modifiche e sincronizzare solo i dati aggiornati. Successivamente, Rethync fornisce sia l'API lato client che lato server in modo da poter creare il proprio servizio (e ospitarlo sul lato web) oppure è possibile scrivere il proprio trasporto per il servizio cloud di propria scelta (forniremo alcuni trasporti in futuro , sono in fase di sviluppo ora).

+0

Sembra che questo non abbia mai superato la pre-release. Questo è ancora attivamente sviluppato? Nessun aggiornamento? Una tabella di marcia? – IInspectable

+0

@IInspectable È stabile e perfettamente funzionante e include documentazione. Se dovesse esserci un problema segnalato, aggiorneremo l'implementazione di conseguenza. Per quanto riguarda gli sviluppi futuri, il motore nel suo stato attuale è autonomo, cioè qualsiasi nuova funzionalità non si adatta al concetto attuale del motore di sincronizzazione. Le cose come TLS, d'altra parte, sono già lì (usando i trasporti che supportano TLS). –

15

C'è anche la cartella "Dati applicazione" di Google Drive.

https://developers.google.com/drive/android/appfolder

Questo ha il vantaggio di utilizzare lo spazio di archiviazione dell'utente.

+1

Penso che per questo sia necessario avere lo stesso account su entrambi i dispositivi, il che probabilmente non è vero per "prendere il telefono di mia moglie". – TWiStErRob

+0

@TWiStErRob Non intendeva solo lo stesso account da utilizzare per accedere al dispositivo? – CamHart

+2

@CamHart Hai ragione. Credo che il punto di vista di TWiStErRob sia che OP non ha il suo account sul telefono della moglie. Pertanto, sebbene possa essere un modo semplice per sincronizzare i dati tra dispositivi, non soddisfa necessariamente tutti i requisiti della domanda. – Mike

Problemi correlati