Questions de débutant ... (liées à l'interaction entre 1 Appli et 1 BD)
macjerem
Membre
Bonjour,
Je suis nouveau sur le forum, car j'avais envie d'apprendre à développer une appli pour Iphone / Ipad. Je n'ai pas encore d'idées ou de sujets de développement, mais j'ai qd même envie de savoir...
Pour me situer, je maà®trise déjà bien le php et MySQL (et la gestion des bases de données en général).
En revanche, peu d'exp en C... et langage compilable.
J'ai déjà lu la doc suivante : "Become an Xcoder francais 20v1_0.pdf".
Et j'aurais des questions sur la consultation des données d'une base de données depuis une application Iphone/Ipad.
J'ai lu le tutorial fort intéressant pour un débutant qui se trouve ici : http://ressources.mediabox.fr/tutoriaux/apple/xcode/mysql
Je vois en Prérequis : Mac Intel, Snow Leopard, avoir installé le package Developer
1/ Cette installation se fait sur Windows ? ou seulement sur Linux / Unix ?
2/ C'est quoi exactement le "Mac Intel, Snow Leopard" ? Est ce l'équivalent du Xcode"Apple's IDE ?
Puis je faire tout mon dév dans l'environnement de travail Xcode ?
3/ Quand vous parlez d'installer une base MySQL... c'est l'installer dans l'environnement Cocoa ?
Et quel intérêt d'installer une BD sur l'environnement Cocoa, car j'ai cru comprendre que l'appli Iphone n'allait pas lire directement la BD, mais un fichier XML / JASON, généré par exemple par un fichier PHP qui aura exécuté une req sur la BD elle même.
4/ J'ai lu que pour les appli Ipad / Iphone, il fallait utiliser SQLite ? Fait on la même chose avec MySQL ?
5/ Savez vous si je pourrais trouver un complément de tutorial m'indiquand comment réaliser une simple page affichant le contenu d'une table de base de données (répondant donc à une req SELECT ... FROM ... WHERE ...) ?
En gros, mon appli va envoyer une req via une URL, appelant donc un fichier php (contenant la req SQL)... et ce fichier php va me générer mon JASON ou XML. Mais à ce moment là , le fichier JASON ou XML se trouve sur le serveur Web, n'est ce pas ? ... comment et où le renvoyer vers l'appli Iphone / Ipad ?
6/ J'ai lu : "MySQL est installé sur le poste en local. Le serveur MySQL est lancé et testé dans le Terminal."
Question peut-être un peu bête !! : Mon appli Cocoa peut elle communiquer avec une base MySQL installé avec EasyPhp ? ... je présume que non,
Je vous remercie par avance, si vous aviez des éléments de réponse à me proposer.
Cdt,
Jérémie
Je suis nouveau sur le forum, car j'avais envie d'apprendre à développer une appli pour Iphone / Ipad. Je n'ai pas encore d'idées ou de sujets de développement, mais j'ai qd même envie de savoir...
Pour me situer, je maà®trise déjà bien le php et MySQL (et la gestion des bases de données en général).
En revanche, peu d'exp en C... et langage compilable.
J'ai déjà lu la doc suivante : "Become an Xcoder francais 20v1_0.pdf".
Et j'aurais des questions sur la consultation des données d'une base de données depuis une application Iphone/Ipad.
J'ai lu le tutorial fort intéressant pour un débutant qui se trouve ici : http://ressources.mediabox.fr/tutoriaux/apple/xcode/mysql
Je vois en Prérequis : Mac Intel, Snow Leopard, avoir installé le package Developer
1/ Cette installation se fait sur Windows ? ou seulement sur Linux / Unix ?
2/ C'est quoi exactement le "Mac Intel, Snow Leopard" ? Est ce l'équivalent du Xcode"Apple's IDE ?
Puis je faire tout mon dév dans l'environnement de travail Xcode ?
3/ Quand vous parlez d'installer une base MySQL... c'est l'installer dans l'environnement Cocoa ?
Et quel intérêt d'installer une BD sur l'environnement Cocoa, car j'ai cru comprendre que l'appli Iphone n'allait pas lire directement la BD, mais un fichier XML / JASON, généré par exemple par un fichier PHP qui aura exécuté une req sur la BD elle même.
4/ J'ai lu que pour les appli Ipad / Iphone, il fallait utiliser SQLite ? Fait on la même chose avec MySQL ?
5/ Savez vous si je pourrais trouver un complément de tutorial m'indiquand comment réaliser une simple page affichant le contenu d'une table de base de données (répondant donc à une req SELECT ... FROM ... WHERE ...) ?
En gros, mon appli va envoyer une req via une URL, appelant donc un fichier php (contenant la req SQL)... et ce fichier php va me générer mon JASON ou XML. Mais à ce moment là , le fichier JASON ou XML se trouve sur le serveur Web, n'est ce pas ? ... comment et où le renvoyer vers l'appli Iphone / Ipad ?
6/ J'ai lu : "MySQL est installé sur le poste en local. Le serveur MySQL est lancé et testé dans le Terminal."
Question peut-être un peu bête !! : Mon appli Cocoa peut elle communiquer avec une base MySQL installé avec EasyPhp ? ... je présume que non,
Je vous remercie par avance, si vous aviez des éléments de réponse à me proposer.
Cdt,
Jérémie
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En lisant d'autres articles, je note qu'en fait il faut extraire de la base de données les données dont on a besoin sous forme d'une fichier XML, et l'exploiter pour alimenter un fichier PLIST.
Euh... c'est quoi exactement ce fichier PLIST ?
Et c'est également cette technique que l'on utilise si notre req renvoie plusieurs 100aines / milliers de lignes ?
N'est il vraiment pas possible de se brancher directement sur la base de données ? et pourquoi ?
On ne peut développer pour iOS qu'avec un Mac avec processeur Intel.
Oui, c'est fait pour.
Non, c'est l'installer en local sur le Mac... j'y reviens.
Oui et non. On consulte la base et on la remplit en utilisant des requêtes SQL.
Par contre, la BdD est forcément locale (ça sert à enregistrer les Documents, si tu veux).
EasyPHP n'existe pas sous Mac, on utilise plutôt MAMP, mais c'est le même principe (installation locale d'Apache et MySQL simplifiée).
Comme la base est locale, on peut l'attaquer avec des requêtes SQL.
En fait, les hébergeurs sérieux empêchent, pour des raisons de sécurité, de se connecter à une base mySQL depuis l'extérieur.
Du coup, il est impossible d'attaquer la BdD par des requêtes SQL avec une appli iOS.
La solution est de prévoir un protocole d'échange en http (connexion à une URL, et le serveur renvoie les données sous forme de XML ou de JSON).
En fait, j'avais modifié mon message initial au moment même où vous m'écriviez votre réponse.
Je ne connais pas du tout l'environnement MAC.
Je possède actuellement un ordi portable avec Windows Vista.
Vous voulez dire que je ne peux rien faire avec Windows ?
XCode ne peut s'installer sur un Windows Vista par ex ?
Non. Absolument pas.
Il faut obligatoirement un Mac pour programmer pour iPhone.
Bonjour,
Oui et d'ailleurs, c'est Mac, iPhone, iPad, iOS, Xcode
Je ne suis pas sur de bien comprendre.
Puis-je faire de la programmation iOS avec Xcode SUR WINDOWS pour développer des applications pour iPhone / iPad ou pas ?
(ma question était : XCode NE peut s'installer sur un Windows Vista par ex ? )
Que voulez vous dire ?
En installant Xcode, je possède tout l'environnement de dév pour développer des applications pour iPhone / iPad, n'est ce pas ?
C'est un environnement de développement pour les Mac.
Donc, je réitère mes propose, tu ne peux ni installer Xcode ni programmer pour iPhone et iPad avec Windows. Je peux pas être plus clair...
et en installant un client UNIX (tel que CygWin) ? ... qu'en pensez vous ?
Non, ce n'est pas possible. Il te faut un MacIntosh. Ce n'est pas compatible avec Windows parce que .. euh .. probablement pour forcer les développeurs à acheter du Mac.
J'ai eu la même surprise que toi, l'an dernier. Au final, j'ai dus acheter un Mac d'entrée de gamme à 600 euros pour me plonger dans le développement iPhone.
Pour créer des applications iPhones, il faut installer le SDK iPhone qui est fournis gratuitement par Apple. Il contient Xcode et les bibliothèques spécifiques à iOS.
ATTENTION : Cet environnement gratuit ne permet pas de tester les applications sur un iPhone/iPod Touch/iPad, juste sur un simulateur "émulant" un device physique. Cet émulateur est fourni avec le SDK iPhone.
Pour installer et tester les applications sur un vrai iPhone/iPod Touch/iPad, il faut souscrire au programme de développeur iPhone (99 $/an, environ 70 €). Cela donne également le droit de soumettre les applications sur l'AppStore.
Aie ... je ne te cache pas ma déception !!!
Ne pas pouvoir dév une appli parce que l'on est sur du Windows !!!
Tant pis.
J'imagine pas le résultat si ça avait été possible.
je ressors ce sujet car je m'interroge toujours sur l'emploi de la bonne méthode à adapter pour communiquer entre une application iPhone et une BDD MySQL sur un serveur distant.
Dans mon cas je souhaite juste recevoir la valeur de 2 variables, les traiter avec l"application puis mettre à jour ces 2 valeurs dans la BDD sur le serveur.
Est-il vraiment nécessaire de passer par un webservice ? Ou une simple UIWebView avec NSURLRequest suffiraient ?
Merci
neospirit
Dans le cas que tu présentes, un webservice n'est pas forcément complexe à concevoir:
[tt]http://www.monsite.com/monscript.php?valeur1=toto&valeur2=tata[/tt]
L'appel à cette URL est trivial avec NSURLRequest.
ça devient plus compliqué quand on veut sécuriser la communication.
Si c'est juste ça l'instruction pour un webservice alors ça me va. Je pensais que c'était beaucoup plus compliqué. Limite, même pas besoin de faire d'UIWebView caché. Je peux directement appeler cette instruction dans une classe ou un ViewController pour récupérer les valeurs.
En plus je n'ai nullement besoin de sécurité.
j'ai essayé mon webservice via firefox sur pc et ça fonctionne !! Je peux envoyer des valeurs vers ma BDD MySQL et les lire sur une page web classique. J'ai créé un fichier .PHP avec ma requete.
Maintenant si je transpose cela dans XCode, je crée mon url :
Je suppose que l'application enverra bien cet url mais par contre comment récupérer les valeurs suite à la requête qui a été envoyée ?
Là je vois pas trop bien.
neospirit
ben tu alloue une NSUrlConnection et tu lances le téléchargement. Tu implémentes les méthodes dans le delegate de la connection et ca va te récupérer les données.
J'ai bien compris que pour dev sur Ipad et Iphone il faut avoir un mac , j'en ai un Macpro 500go Bla bla, 1 Ipad 64go , 1 Iphone 3GS Voilà le décor est planté
Maintenant le plus important :
je connais bien l'univers Visual studio 8 pour dev sur PPC
Mais je voudrais savoir quels sont les outils minimum pour développer sur mac
(Produit, Version , coût , où se les procurer , bouquins etc ...)
Si quelqu'un (ou quelqu'une) peut me briffer la dessus , je lui en serais reconnaissant (presque éternellement...)
PS : J'ai cru lire que pour dev sur Ipad , il faut s'inscrire à l'année sur un site ??? je ne veux que dev des applis pour moi ...
est ce vrai ?
Merci tout plein de vos réponses H
Tu auras accès à toute la doc Apple, les SDK à télécharger, les outils de dev en avant-première, et bien sûr la possibilité de distribuer.
Ensuite, des bouquins, il y en a à la pelle maintenant, sur Objective-C ou le développement iOS.
sinon quel est le meilleur (et simple) ? merci
http://developer.apple.com/devcenter/ios/index.action
Les 79€ par an te permettront d'installer tes propres applications sur ton iBidule. Il est par contre possible de développer gratuitement, mais les applications ne pourront pas être installées, elle pourront uniquement être testées sur le simulateur.
Bonjour
Je suis un peu surpris.
Cela veut dire qu'il n'est pas sérieux de créer une application mac, par exemple pour administrer une base de donnée d'un serveur SGBD externe ?
Quid de PgAdmin qui permet d'administrer un serveur PostgreSQL à distance ?
Merci.
Pourrais-tu en dire plus sur la "question sécurité" ?
Quels sont les risques et où sont-ils dans la chaà®ne client-serveur ?
En ce qui me concerne, il s'agit d'un client (application mac) qui gère une base de données d'un serveur Postgresql externe via le lan, en utilisant la bibliothèque libpq.dylib pour la connexion et la manipulation des données de la base.
Il existe des fonctions ssl dans cette bibliothèque. Est-ce que leur utilisation pourrait assurer un niveau acceptable de sécurité de ton point de vue ?
Maintenant si ce n'est pas ouvert sur Internet mais restreint sur un réseau local (LAN) et que tu utilises une connexion sécurisée type SSL (à condition de l'utiliser correctement, entre autres utiliser des certificats signés par une CA et non pas auto-signés, et vérifier leur signature, sinon ça sert à rien...) ça restreint le risque.
machine Ai (osx, application cliente) <=Internet=> Machine B (ubuntu, serveur PostgeSQL)
Dans la doc PostgreSQL 9.3, il existe pas mal de choses pour "sécuriser" la connexion entre un client et le serveur.
17.7. Empêcher l'usurpation de serveur
17.8. Options de chiffrement
17.9. Connexions tcp/ip sécurisées avec ssl
17.10. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels
Est-ce que ça vaut la peine de passer du temps à comprendre et à mettre en place ces techniques ?
J'utilise déjà l'authentification basique par md5.
Surtout encore + si comme tu le dis dans ton schéma ça passe par internet (je croyais que tu avais parlé de LAN dans un post précédent ?! Faudrait savoir ^^)
qui n'est en aucun cas une autentification sécurisée puisque le mot de passe circule quasi en clair (un MitM peut intercepter le md5 et le rejouer à volonté donc c'est du coup d'une simplicité enfantine de se faire passer pour quelqu'un d'autre dans ces conditions : même pas besoin de connaà®tre le mot de passe d'origine, en plus ! Suffit d'envoyer le même md5 sur le réseau et hop on se fait passer pour l'admin de la BDD sans même avoir eu à déchiffrer le mdp !
Bon, donc au boulot...
Merci pour tout, en particulier de ta patience