web-dev-qa-db-fra.com

Comment synchroniser des données entre différents appareils

Je prévois de mettre en œuvre une application et j'en suis arrivé à un point où je ne sais pas quelle est la meilleure approche.

Scénario:

J'ai une application où je fais une liste de tâches et j'ajoute 3 éléments. J'utilise mon téléphone pour cela ..__ Ensuite, je prends ma tablette et je veux continuer à ajouter une autre tâche. Puis, au bout d’un moment, je prends le téléphone de ma femme et souhaite ajouter 2 nouvelles tâches.

En gros, je souhaite disposer d'un moyen très simple de stocker les tâches en ligne et de pouvoir les synchroniser avec l'application. 

Je vois deux manières possibles:

  • avoir un serveur Web avec une base de données + appels de service Web. Cela a l’inconvénient d’avoir un hôte payé, découvrez quelques techniques supplémentaires de service Web mysql +. 

  • stocker en quelque sorte les données sur le cloud et permettre à l’application connectée d’accéder à un compte qui stocke le fichier. Je pense ici à quelque chose comme Google Drive/Dropbox. Mais je ne sais pas comment je pourrais synchroniser uniquement les valeurs mises à jour, pas le fichier entier. Parce que je pense que si je stocke toutes les tâches dans un fichier, chaque fois que je le mets à jour, je dois le télécharger complètement, ce qui n'est pas la meilleure approche.

Je suis ouvert à tout conseil. Quelle approche recommanderiez-vous?

22
Alin

Je voudrais examiner soit Google App Engine ou Amazon Web Services . Ils vous accordent tous les deux une utilisation gratuite par mois et si vous dépassez vos dépenses, vous risquez de ne pas dépasser le niveau gratuit pendant un certain temps.

AWS est un peu plus mature que GAE actuellement et semblait être un peu plus facile à implémenter que GAE lorsque je faisais des recherches

9
tyczj

Il y a aussi le dossier "Application Data" de Google Drive.

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

Cela présente l'avantage d'utiliser l'espace de stockage de l'utilisateur.

17
Mike

Jetez un coup d'œil à la nouvelle classe de formation pour les adaptateurs de synchronisation: http://developer.Android.com/training/sync-adapters/index.html pour les bases de l'envoi de données de votre appareil à un serveur .

Sur le périphérique Android, je vous suggère de stocker vos tâches dans un fournisseur de contenu. Cela vous aide à garder une trace des mises à jour depuis votre dernière synchronisation. Vous pouvez ensuite interroger le fournisseur lors de la synchronisation, envoyer uniquement les données mises à jour et stocker les données sur le serveur.

Vous devriez probablement stocker la dernière heure de mise à jour sur le périphérique afin de pouvoir déterminer si le serveur contient des données qui ne sont pas encore sur le périphérique. N'oubliez pas que vous devrez également télécharger des tâches si vous souhaitez que tous les périphériques soient synchronisés.

3
Joe Malin

Vous pouvez essayer Google Firebase. Firebase fournit le SDK pour les appareils Android et iOS. Firebase prend également en charge la synchronisation et la connexion hors ligne. Firebase fournit également un service de stockage d'objets. Il est plus facile de créer une application firebase que vous ne le pensez. Jetez un coup d'œil à ceci le service de restauration de base de firebase .

0
VivekRajendran

Vous pouvez consulter notre Rethync framework (freeware avec source). En l'utilisant, vous pouvez simplifier la tâche de détection des modifications et synchroniser uniquement les données mises à jour. Ensuite, Rethync fournit des API côté client et côté serveur afin que vous puissiez créer votre propre service (et l’héberger sur le Web) ou vous pouvez écrire votre propre transport pour le service cloud de votre choix (nous fournirons certains transports à , ils sont en cours de développement maintenant).