Echange de données. App multi-utilsateurs

Je tourne, je cherche, je ne comprends pas... je demande à la communauté PommDev sa vision éclairée
<br />
J'ai un projet d'application dont le rôle sera d'échanger des données entre plusieurs utilisateurs.
Comme le schéma ci-dessous le montre, les utilisateurs devraient pouvoir créer des "projets" que les autres devraient pouvoir consulter et modifier.
Il me faut donc utiliser une base de données avec des tables relationnelles. Exit CoreData qui n'est que mono utilisateur et, si j'ai bien compris, il n'y a guère que SQL pour faire cela.
J'en viens là où j'en suis, c'est à dire devant un grand trou noir. Car je ne connais pas du tout sql (si ce n'est de changer deux trois options en phpMysql). Par où commencer ?
- Est-ce que je dois prévoir une base chez mon fournisseur d'accès ?
- Quels sont les prérequis pour espérer avoir quatre cinq tables qui parlent avec l'iPhone ?
- Dois-je commencer le dev sur l'iPhone ou sur le site ?
- Un framework (comme certains sont cité sur le forum, me simplifierai-t-il la création ?
... et comme je l'ai lu sur un autre post, devrais-je abandonner quelque chose bien trop difficile pour mon piètre niveau et aller boire un café ?
Il y quelques discussions déjà , mais je n'arrive déjà pas à visualiser la tâche hors iPhone Dev

J'ai un projet d'application dont le rôle sera d'échanger des données entre plusieurs utilisateurs.
Comme le schéma ci-dessous le montre, les utilisateurs devraient pouvoir créer des "projets" que les autres devraient pouvoir consulter et modifier.
Il me faut donc utiliser une base de données avec des tables relationnelles. Exit CoreData qui n'est que mono utilisateur et, si j'ai bien compris, il n'y a guère que SQL pour faire cela.
J'en viens là où j'en suis, c'est à dire devant un grand trou noir. Car je ne connais pas du tout sql (si ce n'est de changer deux trois options en phpMysql). Par où commencer ?

- Est-ce que je dois prévoir une base chez mon fournisseur d'accès ?
- Quels sont les prérequis pour espérer avoir quatre cinq tables qui parlent avec l'iPhone ?
- Dois-je commencer le dev sur l'iPhone ou sur le site ?
- Un framework (comme certains sont cité sur le forum, me simplifierai-t-il la création ?
... et comme je l'ai lu sur un autre post, devrais-je abandonner quelque chose bien trop difficile pour mon piètre niveau et aller boire un café ?
Il y quelques discussions déjà , mais je n'arrive déjà pas à visualiser la tâche hors iPhone Dev

Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour ma part je suis en train de concevoir une appli. iPhone client/serveur qui dialogue avec une API. J'ai commencé par le dév. de l'API (la doc, puis le dév en lui même). Cela m'a pris un mois (à temps plein) pour rentrer dans le framework (Symfony) déjà en place, comprendre l'existant et développer les fonctions de base (appel des objets existant en BDD, créer de nouveaux objet, etc.
Maintenant je me suis en train de développer le côté client et cela ne m'a pas pris beaucoup de temps pour transformer mon flux XML (renvoyé par l'API) en Objet iPhone (si l'ont excepte les quatre jours passée à chercher comment arriver à m'authentifier à l'API depuis l'iPhone ^^).
J'espère que cela a répondu à ton questionnement, sinon n'hésite pas à poser d'autres questions pour affiner ta demande.
A bientôt,
Pierre
Et puis, 4 tables SQL ce n'est pas très compliqué, tant qu'il n'y a pas de jointures exotiques dans tous les sens
L'utilisation de Symfony pour la création d'un webservice n'est absolument pas obligatoire.
Pierre
Parce que accéder directement à une base MySQL distante depuis un iPhone, il faut oublier... Sinon pour la création des tables... N'importe quel outil peut convenir, y compris phpmyadmin... Mais ce n'est pas phpmyadmin qui va pouvoir exécuter des requêtes, pour cela il va falloir coder coté serveur.
Donc, en gros, il va falloir apprendre un minimum de SQL et un minimum de PHP.
Pour Symfony, j'ai trouvé ce serveur alwaysdata qui propose une installation clé en main. Je pense que ça ne va pas m'avancer pour le codage, mais c'est peut-être utile à ceux qui savent de quoi il s'agit ; en plus avec une option gratuite.
A ma connaissance il n'existe aucun framework (ou CMS ou autre) permettant d'interfacer une BDD et une application client/serveur sans devoir mettre les mains dans le cambouis.
Si ton objectif est juste de pouvoir faire dialoguer plusieurs applications entres elles avec un point central alors je te conseil de faire au plus simple et d'oublier Symfony.
Le plus simple = un hébergement mutualisé (ou dédié si tu as le budget et les compétences adéquates ^^) avec Apache et MySQL.
Il faut réfléchir à la structure de ta BDD, la créer (par exemple via PHPMyAdmin) et ensuite développer le code PHP (ou ASP, ou autre ^^) qui va bien pour qu'on puisse appeler plusieurs fonctions de lecture et d'écriture dans la BDD.
La lecture renvoyant un fliux XMl ou JSON.
N'oublie pas de bien sécuriser les accès en écriture (et ceux en lecture si ce sont des données sensible). Une fois ton API en place tu pourras regarder du côté du dév. iPhone pour qu'il appel les fonctions de ton API et qu'il récupère le flux XML ou JSON, l'interprète et te permette de faire dialoguer plusieurs applications client/serveur avec un point central (ta BDD).
Si tu as des questions n'hésite pas,
Bonne chance,
Pierre
ça, je sais faire
Là , j'ai tout à apprendre. Si j'ai bien compris, je ne m'occupe pas trop du côté client. J'essaye d'abord le PHP (avec JSON en vue).
Merci encore, j'hésiterai pas
Puisque le client va s'adapter au serveur, c'est ce dernier qui impose la syntaxe de dialogue (le protocol).
Bonne chance,
Pierre
Mais comme il y a quelques actions qui commencent à être possible, je pensais m'intéresser à la partie iPhone pour me faire une petite idée.
J'ai donc suivi tes conseils, Pierre, dans la chronologie. Maintenant j'aimerai avoir votre avis comment aborder le protocol ?
Je remercie au passage Métablue qui m'aide bien
J'ai l'impression qu'il y a pas mal de méthodes et de philosophies pour faire une app qui se synchro avec une base de données.
Merci encore de m'aider à y voir plus claire pour créer simplement une application qui puisse parler avec ma base de données ou mon site Ruby
Tu peux commencer très simplement :
- Appeller une URL http sur ton site en POST (par exemple, ouvrir un compte user)
- Récupérer le résultat (par exemple renvoyer depuis le site sur le serveur une chaà®ne JSON ou un PLIST qui dit { :success => OK } ou { : success => KO }
- Afficher le résultat dans l'application iPhone (certainement dans une méthode delegate de NSURLConnection) en interprétant la chaà®ne JSON ou le PLIST
Et voilà , tu t'es créé un premier webservice perso.
Par ailleurs, je te conseille l'excellent framework ASIHTTPREQUEST et ses méthodes delegate vraiment sympa, et plein d'autres choses... je suis en train de l'apprendre. La doc est simple.
- Utiliser le framework RPC-JSON d'Ali
Je vois par où commencer et confirme que le framwork RPC-JSON d'Ali peut faire cette tâche. Je vais faire quelques essais de ce côté.
Puis je regarderai de plus près ASIHTTPREQUEST qui montre des fonctions intéressantes sur la gestion des données asynchrones.
Dans le même temps, je vais essayer de mettre en route actionwebservice sur mon serveur Ruby.
En espérant que tout ça ne se mélange pas trop.
Bonjour,
Un truc assez pratique que j'ai utilisé : c'est la modélisation de base de données dans l'environnement de dev. Eclipse.
À l'époque j'utilisais un plugin intitulé Clay (http://www.azzurri.jp/) qui me permettait de construire visuellement ma base (structure, relation, index, clés, vues etc.) et de générer le script de création des tables que je faisais ensuite exécuter via phpmyadmin (option SQL, importation de fichier).
K.
J'ai bien essayé de suivre les conseils de Muqaddar :
et de Zoc :
Que je remercie d'ailleurs.
Pour l'instant, j'ai un site de test ici : http://phemka.alwaysdata.net/
Mais je sais vraiment pas comment faire pour adapter l'une des solutions qui me sont présentées.
Par exemple, pour enregistrer un nouvel utilisateur, j'ai un Model User avec un code tout ce qu'il y a de plus basique en Ruby :
Je sais que ma demande n'est pas très précise et je comprendrai qu'il n'y aie pas de réponse. J'essaye quand même pour voir s'il y a une possibilité de me faire comprendre quelque chose
Il faut bien sûr avoir installé le gem JSON chez ton hébergeur.