# débuter en programmation mac



## pinguin (13 Septembre 2010)

Bonjour à tous,

Jespère être dans la bonne catégorie pour poster ce topic.

J'aimerais développer un programme pour Mac OS X. Je n'ai jamais fait de programmation pour mac, mais pour Windows oui, donc je possède déjà des connaissances en : C , C++ , Python, Php - Mysql , etc.

Je vous contact afin de savoir si vous connaissez de bonnes références pour débuter tels que des livres, des tuto online, etc.

Afin de bien vous orienter pour votre réponse, voici le but de mon programme.

Le programme sera orienté "médical", il y aura donc toute une base de données contenant toutes les informations des patients ( sexe, date de naissance, poids, taille, des images du corps humain pour localiser des problèmes, etc.).

Il y aura donc une grosse base de données à l'arrière.
Pour l'aspect graphique, j'aimerais le développer moi même.

J'ai pensé à créer à la base un simple site en PHP, qui gèrerais une base de données, mais pour cela il faudrait que le site soit héberger en ligne ou alors lancer un serveur tel que MAMP ou autre. Mais je ne tiens pas à ce que ce soit un site, mais une application en elle-même (*.app) (pour peut être la portée par après sur iPad).

C'est donc pour cela que je me tourne vers vous afin d'avoir plus d'information.

Pour ce qui est de l'aspect visuel/conception, le médecin en question aura une fiche détaillée de son patient, et j'aimerais que, par exemple, lorsqu'il clique sur la date de naissance, le champ puisse, tout en restant à sa place, devenir modifiable avec l'apparition de bouton pour valider ou annulé le changement effectué.

Est-ce possible une telle conception ?

Merci d'avance.


----------



## Céroce (13 Septembre 2010)

Vu ton projet, programmer Cocoa semble tout indiqué. Ça peut paraître chiant de devoir apprendre Objective-C, mais c'est un langage élégant (surtout quand tu viens du C++), et son apprentissage est court (1/2 journée).
Maîtriser Cocoa est bien plus long. Je ne saurais que trop te conseiller la lecture de Programmation Cocoa sous Mac OS X d'Aaron Hillegass. Crois-moi, c'est un très bon investissement. Ensuite Cocoa Mac et Cocoa Touch sont un peu différents, mais la transition est facile.

On pourrait imaginer utiliser d'autres outils de développement sur le Mac, comme Qt + Python, voire Java, mais l'intégration avec l'OS est moyenne. Et sur iPad, tu oublies.



pinguin a dit:


> Pour ce qui est de l'aspect visuel/conception, le médecin en question aura une fiche détaillée de son patient, et j'aimerais que, par exemple, lorsqu'il clique sur la date de naissance, le champ puisse, tout en restant à sa place, devenir modifiable avec l'apparition de bouton pour valider ou annulé le changement effectué.



C'est faisable, mais ce n'est pas du tout standard. Et ce qui n'est pas standard est MAL.
Habituellement, si l'utilisateur se rend compte qu'il a fait une erreur, il utilise l'article de menu Édition > Annuler. La manière dont tu veux procéder est juste agaçante: "Vous venez de modifier la date de naissance. En êtes-vous sûr ?".
Des potes à moi programment pour Windows, et leurs patrons exigent qu'ils considérent que les utilisateurs sont des neuneus et qu'ils vont faire des bêtises (c'est bien dommage, mais véridique. Heureusement, les mentalités évoluent).

Sur Mac, on considère que les utilisateurs sont intelligents, mais qu'ils n'ont pas la science infuse. Dans ce cas, ça veut dire que si le médecin a modifié la date de naissance, c'était très probablement volontaire, il n'a pas à confirmer, ou alors seulement à la sortie de la fiche du patient, en lui demandant s'il veut enregistrer.


Pour la base de données, on va sans doute te conseiller Core Data. Au départ, c'est séduisant, avec l'éditeur de schéma intégré à XCode, et les API de haut niveau. Honnêtement, je déconseille, à moins d'être un expert en Cocoa: c'est très difficile à déboguer, et la doc n'est pas au niveau. Je te conseille de partir sur une base SQLite, et de l'attaquer avec les bonnes vieilles requêtes SQL. Il existe des wrappers ObjC pour SQLite.

Avec ça, tu devrais être paré !


----------



## pinguin (13 Septembre 2010)

Salut Céroce,

Merci bcp pour ta réponse rapide.

En effet, je cherche un moyen de programmer avec un maximum d'intégration avec Mac OS X.

D'après ce que tu me dis Cocoa à l'air bien complet, je vais donc m'orienter vers lui surtout s'il est compatible avec SQLite.

On m'avait parlé aussi de xCode, mais je n'en connais pas plus ...

Merci pour tes références.

Si d'autres ont des références, n'hésitez pas


----------



## daffyb (13 Septembre 2010)

c'est pas mal de jeter un coup d'oeil ici aussi : http://developer.apple.com/


----------



## Céroce (13 Septembre 2010)

Oui, commence par suivre le lien de daffyb.
Inscris-toi sur l'Apple Developer Connection (ADC),  le compte gratuit est très suffisant dans la majorité des cas. Télécharge y gratuitement XCode: il s'agit de l'IDE pour développer en Cocoa.


----------



## pinguin (13 Septembre 2010)

ok merci, je suis actuellement en train de le télécharger. 

2,94Go quand même 

merci à tous pour les infos.


----------



## ntx (13 Septembre 2010)

pinguin a dit:


> J'ai pensé à créer à la base un simple site en PHP, qui gèrerais une base de données, mais pour cela il faudrait que le site soit héberger en ligne ou alors lancer un serveur tel que MAMP ou autre. Mais je ne tiens pas à ce que ce soit un site, mais une application en elle-même (*.app) (pour peut être la portée par après sur iPad).


Il y a tout ce qu'il faut sur ton Mac pour faire tourner une appli PHP en local : Apache + PHP

MySQL s'installe sans problème, avec son compagnon : phpMyAdmin.

Mis à part cela, ce que tu veux faire peut tout aussi se faire simplement avec une application comme Bento ou Filemaker, pas besoin de sortir l'artillerie lourde Cocoa.


----------



## pinguin (29 Mars 2011)

Salut à tous,

je reviens sur ce topic après une petite interruption sur ce projet pour vous demander si vous n'auriez pas vu passer des tuto sur la denrière version d' Xcode qui viens de sortir (anglais ou français, ca n'a pas d'importance  ) ?

J'aurais aussi voulu un complément d'information car j'aimerais réorienté mon application.

pour faire simple sur le fonctionnement :

1) le médecin encode sur son iPad les informations relatives aux patients.
2) Il peut aussi consulter les informations  des patients sur son MB(P) qui ont été encodées sur son iPad.

donc en gros, quand le patient est devant lui il bosse avec son iPad, mais au besoin, dans la soirée, s'il veut revenir sur le dossier du patient il peut y avoir accès à partir de son mac/macBook/macBookPro.

Est-ce que je dois partir d'une appli mac OSX vers iOs ou inversement ?

Je vais bientôt réalisé le schéma de la base de donnée pour voir de quoi j'ai besoin dans mon arborescence.

merci d'avance


----------



## Céroce (29 Mars 2011)

pinguin a dit:


> Salut à tous,
> Est-ce que je dois partir d'une appli mac OSX vers iOs ou inversement ?



Les classes Cocoa de gestion des données (Foundation et Core Data) sont identiques sur les deux OS. Sachant qu'il y a plus de contraintes du côté iOS, par exemple sur la quantité de mémoire disponible, la balance penche légèrement pour commencer par iOS.


----------



## pinguin (29 Mars 2011)

Merci Céroce !

Je vais devoir donc me pencher sur le kit SDK iOs Dev Center, qui est disponible via le package "Xcode 3.2.6 ans iOS SDK 4.3"

Est-ce que vous auriez des recommandations de tutos pertinent et mise à disposition gratuitement pour m'initier à Cocoa avant que je puisse me lancé plus concrètement dans mon projet ?


----------



## Larme (29 Mars 2011)

Je me permets vite-fait de signaler qu'une application de ce genre existe déjà : PatientL.
Mais si tu veux développer toi-même


----------



## pinguin (29 Mars 2011)

Merci pour l'info Larme 

Cette app correspond plus ou moins à ce que je voulais réaliser. Je les contacts afin de prendre le max de renseignements pour voir si ca correspond exactement à nos besoin o non.


----------

