Synchroniser des données entre 2 personnes

Salut, j’espère que cette formidable communauté va pouvoir m’aider parce là j’ai du mal :exploding_head:

Voici mon problème :
Disons que mon appli est installée sur 2 iPhones appartenant à 2 personnes différentes.
J’aimerai lancer à l’ouverture de cette appli une synchronisation de données entre ces 2 personnes.
J’ai pensé à iCloud mais les 2 personnes ayant des comptes différents je ne crois pas que ce soit une piste à creuser (mais je peux me tromper).

En fait je ne connais rien d’autre qu’iOS (que je suis loin de maîtriser) et je dois avouer que je sèche complet :pensive:

Est-ce que quelqu’un a une idée?

Tu peux utiliser une base de données et faire des requêtes REST vers celle ci. Mais il va te falloir gérer l’authentification des utilisateurs.

Merci pour ta réponse Alexandre. C’est ce que je redoutais :sweat_smile:
Je sais me servir d’une API REST mais par contre je ne sais absolument pas en créer une.
J’espère qu’il y a d’autres moyens car je n’avais pas prévu d’apprendre ça dans les semaines qui viennent :wink:

Va falloir te coller au PHP ! ou autre langage… si tu veux créer un web service.

Aaahhhh :scream:
J’ai déjà tellement à apprendre sur iOS :nerd_face:

:thinking: je crois que j’ai une autre piste :
CloudKit Share!

Je vais fouiller mais ça pourrait répondre à mon besoin :crossed_fingers:t2:

Hello,

Ça dépend du type de donnée à synchroniser entre les 2 personnes mais tu pourrais très bien aussi utiliser un service de base de données sur le cloud du type Firebase.
A l’ouverture, les personnes peuvent s’abonner au même node et donc récupérer exactement les mêmes données à l’ouverture de l’app par exemple.

Faudrait vraiment que j’essaye Firebase… @mbritto nous a montré Realm pour sa facilité d’utilisation. J’ai l’impression que Firebase offre plus de dispo.

Merci Schtipoun,
Firebase a l’air d’offrir pas mal de possibilités en effet.
Par contre j’ai du mal à comprendre la partie tarification.
Je vais faire une application « CV » gratuite pour pouvoir montrer ce que je sais faire. Je ne crois pas qu’elle sera beaucoup téléchargée mais j’aimerai qu’elle reste gratuite pour les utilisateurs et pour moi :money_mouth_face:
Mais si le CloudKit sharing ne répond pas à mon besoin, j’essayerai avec Firebase ou realm qui a une solution équivalente je crois.

Avant de passer sur l’offre payante, tu as un peu le temps de voir venir !
Pour te donner une idée, je suis en train de développer une application et j’ai estimé à 1’000 utilisateurs quotidiens de mon app pour commencer à rentrer dans le modèle payant (et le premier palier est aux environs de 15$ par mois et va me permettre de voir venir jusqu’à 10’000 voire 15’000 utilisateurs).

Et oui, @alexandre.cane, comme il faut d’ailleurs que j’essaye Realm un de ces 4 :slight_smile:
Mais là, je suis passé sur le développement de mon application sur Android depuis quelques semaines et l’intégration de Firebase est vraiment un bonheur car c’est quasiment du copier/coller par rapport à la version iOS, rien à repenser par rapport au modèle de données ou quoi que ce soit donc ça m’a fait gagner pas mal de temps.

En effet Firebase est interessant car il offre beaucoup de possibilités et ne coûte pas très cher.
Realm est plus limité car il ne propose que la base de données locale (100% gratuite, sans quota ni limite) et la synchronisation temps réel entre les différents appareils (payant et plus cher que firebase).
Par contre Realm simplifie drastiquement la gestion de la base de données et de la synchronisation, au final c’est surtout une question de coût.
J’ai prévu de parler un peu plus de ces 2 possibilités mercredi au coaching de groupe. Ca vous aidera à faire votre choix.

1 « J'aime »

J’ai testé Firebase et, sous une apparence simple, c’est une “grosse” machine.

Le gros atout est vraiment le temps réel, qui permet à un utilisateur de modifier les données et aux autres utilisateurs d’en être immédiatement informés. Idéal pour un chat ou un fil de réseau social…

En revanche il faut programmer des “observateurs” des changements de données, ce qui n’est pas très aisé (et pas simple à gérer en MVC je trouve). Qui plus est, si il y a beaucoup de tables liées, ça se complique à cause de la modélisation NoSQL qui implique des index croisés pour ne pas recharger des noeuds complets à chaque mise à jour.

Mais le bon côté, c’est que c’est sensé tenir la charge avec des milliers d’utilisateurs simultanés, et que ça gère à peu près tout (données, sécurité authentification, statistiques, notifications push,…)

Bon courage :wink:

Merci beaucoup Yves pour toutes ces précisions :pray:t2: