2017-09-15 7 views
-1

Quelqu'un at-il une meilleure idée de travailler en ligne et hors ligne application Android? Aussi, comment puis-je gérer la synchronisation des données côté serveur avec la base de données locale?Comment faire pour que l'application Android fonctionne en ligne et hors ligne avec le côté serveur? et comment synchroniser les données côté serveur?

+3

Voyez que c'est une question intéressante parce que c'est le problème que chaque application client et développeur backend doit résoudre et doit comprendre dans leur API et leur conception d'application. Dommage que * cette question soit trop large * et dépend de ce que votre base de données est à la fois côté client et serveur, et quelles technologies vous choisissez d'utiliser, et quelles sont les limites de votre projet, etc – EpicPandaForce

+0

Je suggérerais, "Embaucher quelqu'un pour fais ceci ". –

+0

La réponse à la première question est écrite dans votre deuxième question, "en ligne comme hors ligne" en ayant une base de données locale de synchronisation chaque fois que l'utilisateur se connecte. La réponse à la deuxième question est une combinaison de services et –

Répondre

5

Mesures à prendre pour une application en ligne complète:

1) Votre interface utilisateur affiche toujours les données de la db et écoute activement à tout changement de db.

2) Chaque fois que l'utilisateur interagit avec votre application, vous mettez directement à jour la base de données et marquez les champs pertinents dans votre base de données pour les synchroniser avec votre serveur. (Notez que votre interface utilisateur est mise à jour instantanément lors de l'écoute des modifications de base de données)

3) Votre couche réseau écoute les modifications de champ marquées dans votre base de données et tente de se synchroniser avec le serveur.

4) Lorsque les modifications côté serveur sont réussies, vous désélectionnez les champs DB qui sont maintenant synchronisés avec succès. 5) Si vous implémentez une down-sync (ie: le serveur a les données mises à jour et veut que le client se mette à jour en conséquence), vous pouvez envoyer une notification push au périphérique et effectuer un appel réseau pour récupérer les dernières données en fonction du message de notification.

Pour que cela fonctionne correctement, vous aurez besoin d'une base de données réactive. Base de données de domaine est un exemple que j'ai utilisé.

+0

C'est si facile si je ne fais que traiter de petites données. Et si les données sont grandes? J'ai besoin de synchroniser chaque donnée avec des données mises à jour. – The90sArtist

+0

J'ai besoin de plus de contexte pour répondre à cela, supposons que vous faites des applications de nouvelles, vous pouvez récupérer toutes les données du serveur une fois par jour (disons) le matin, et afficher les données de db –