iOS – comment gérer datatables en ligne / hors ligne

Je développe actuellement une application avec une grande database. Pensez à l'application comme similaire à TripAdvisor de la manière suivante: plusieurs villes avec des bases de données différentes, chacune entre 5, 10, 20, 30 Mo. Toute mon application est basée sur ces données: chaque vue en a besoin.

J'ai beaucoup de mal à find la bonne façon de gérer cette énorme quantité de données. J'utilise actuellement CoreData: je pense que c'est un outil génial, et pour le mode offline, ça fonctionne vraiment bien. Le problème est, je ne peux pas vraiment le combiner avec le mode "en ligne". Si l'user ne veut pas stocker datatables pour une raison X / Y, je ne suis pas sûr de la façon dont je devrais gérer datatables. Il suffit de l'allouer dans les variables qui seront publiées de toute façon, ou y a-t-il une meilleure façon de gérer datatables? En ce moment, je le stocke dans CoreData sans l'save: je sais que ce n'est absolument pas un bon moyen de le gérer. Comment pourrais-je y parvenir? Quel est le meilleur moyen de gérer datatables en ligne, puis de les stocker simplement si l'user le souhaite également hors connection?

Option 1:

Les données sont toujours statiques / ne changent pas datatables fréquemment: vous devriez avoir des données en ligne. Vous pouvez récupérer des données par webservice et les stocker dans une database locale (c'est-à-dire core -data). Par exemple: Bible, Coran app.

Option 2:

Les données changent fréquemment et l'user doit fréquemment mettre à jour: comme ci-dessus. En outre, à partir du server, vous envoyez une notification (i, e push-notification) à l'application que le server a une nouvelle donnée.Après avoir reçu une notification dans l'application, téléchargez et enregistrez des données dans votre database.