XCode c'est quoi ?
XCode est l'environnement de développement de Mac OS X. Livré gratuitement avec ce dernier sur un CD dédié, Apple délivre régulièrement de nouvelles version de cet outil aux développeurs inscrits sur leur site Apple Developper Connection. Nous en sommes aujourd'hui à la version 1.5, la version 2.0 devant sortir avec la prochaine version de Mac OS X.
Mon expérience Xcode
J'ai commencé à utiliser Xcode dès que je me suis procuré mon iBook, c'est-à-dire il y a bientôt 1 an. Durant cette année, j'ai essayé de découvrir les nouvelles technologies que me proposait cet outil, notamment les étonnantes bibliothèques que propose Mac OS X aux développeurs.
J'ai appris de nouvelles API, j'ai même appris de nouveaux langages, mais j'ai aussi acquis une expérience qui me fait peur : Mac OS X est un Unix.
« Tout le monde le sait » me direz-vous, moi aussi je le sais, mais en utilisant Xcode, on apprend rapidement que les racines unixiennes de Mac OS X sont encore bien (trop) apparentes pour un système d'exploitation de cette génération. Et je considère cela comme une énorme faute de goût dans un système comme Mac OS X qui se veut simple et accessible.
Alors que l'utilisation d'un Mac est un paradis, le développement est un enfer
Dès que je lance cette sombre merde qu'est Xcode, je revois défiler devant moi toutes les années de développement sous Linux à écrire des makefiles, à ajouter des options de compilation à GCC pour que celui-ci daigne utiliser la bibliothèque que je souhaite utiliser.
Tant de choses que j'avais perdu de vue avec des outils comme Visual Studio ou Eclipse. Tant de choses qui pour moi appartenaient au passé. Et pourtant, je redécouvre avec horreur que c'est le pain quotidien de milliers de développeurs Mac, et pourtant aucun ne se plaint, on trouve quantités de forums où les développeurs passent entre 1 et 2 semaines à réussir à linker une petite bibliothèque et tout le monde semble trouver ça normal. « Il n'y a pas beaucoup de tutoriels Xcode... » vous répondra-t-on.
Mais pourquoi diable faudrait-il un tutoriel pour une chose aussi simple !
Ouvrez les yeux !
Je compte bien m'adresser ici à tous les développeurs qui utilisent encore ce genre d'outils, aux gens qui développent encore en écrivant des makefiles, aux gens qui installent encore leurs bibliothèques dans /usr/include
« parce que sinon ça fonctionne pas ».
À tous ces gens je dirais qu'il existe aujourd'hui des outils qui font ça très bien à votre place. Il existe aujourd'hui des outils capables de compiler seulement les fichiers qui ont été modifiés. Il existe aujourd'hui des outils capables de gérer les dépendances entre vos projets.
XCode, c'est fini
Et oui, entre cette petite application et moi, c'est terminé.
Je ne développerais pas sous Mac OS X tout simplement parce que je n'ai pas le courage de replonger dans tous les vices que je cherche à éviter depuis des années.
Un espoir ?
Ok je l'avoue, cette histoire me reste en travers de la gorge. Imaginez, voilà presque 6 mois que je cherche à linker une bibliothèque autrement qu'en modifiant moi-même les chemins de compilation. Comprenez un peu ma frustration.
Mais peut-être quelqu'un parmi mes lecteurs est-il un utilisateur assidu de Xcode ? S'il n'est pas encore parti en courant, j'apprécierais énormément un coup de main, et public de préférence, histoire d'enfin en faire profiter tous ceux qui comme moi tournent le dos au développement sur Mac OS X pour de mauvaises raisons.
'EDIT': Je présente un peu plus clairement ce que je souhaite dans un autre billet.
'EDIT 2006-08-11': Je viens de tester Xcode 2.4 et toutes les erreurs que je signale semblent être enfin corrigées. Je vais recommencer à apprendre le développement Mac OS X avec un peu moins de réticences.
1 De Fangorn -
Tout dépends de ce que tu fais avec XCode, mais dans tous les cas c'est une vrai torture tu l'as dis, je suis resté 3 heures dessus, et je suis revenu sur ProjectBuilder et je me sert d'Eclipse comme éditeur (je développe en Java).
Pour ton problème d'intégration, si la librairie est libre/open source, pourquoi ne la recompiles tu pas dans un projet de type FrameWork ? tu pourra alors l'installer dans /System/Library/Framework ou autre.
Mais peut-être que je réponds à côté de la plaque en effet je n'ai jamais tappé une seule ligne d'Objective-C sous Mac.
2 De Vincent -
Justement, je pensais — je suis parfois naïf — que l'utilisation d'un Framework me dispenserait de toutes ces histoires d'installation, de /System/Library/Framework ou je-ne-sais-quoi. Je pensais que je pourrais tout simplement inclure mon Framework dans mon projet, et voilà, tout fonctionne, il trouve les headers tout seul, il trouve les lib tout seul.
Mais non bien sûr, ça serait trop facile, on ne pourrait plus justifier notre énorme salaire. J'ai trouvé dans la doc qu'il fallait spécifier un répertoire d'installation pour « déployer son framework ». Pardon de l'expression, mais je n'en ai rien à foutre de déployer, moi je veux compiler, et que ça fonctionne, maintenant.
Alors oui j'ai trouvé la solution, et non je ne l'accepte pas en l'état. Tant que les développeurs d'Apple ne nous sortiront pas un projet où je peux gérer les dépendances entre projets sans toucher une seule fois à mon clavier, je coderais peut-être pour Mac OS X. En attendant, je reste sur Windows.
3 De CRISTOBOOL -
on peut développer sous windows et recompiler sous OS X ça pose pas trop de soucis; et t'es pas obligé d'utiliser "les outils apple" pour développer non plus.
4 De Benjimac -
Salut à vous !
Je suis un utilisateur de Windows et de Mac. A l'école, j'ai apris à développer avec Delphi (pascal pour windows). Je suis entièrement dacord avec Vincent pour dir que malheureusement, il est beaucoup plus difficil de programmer sur mac avec XCode. D'où ma question pour CRISTOBOOL : Comment faire pour recompiler une application développée sous windows pour mac ?
Merci d'avance!
Benjimac
5 De bille2 -
http://gpwiki.org/index.php/C:How_to_set_up_your_SDL_Build_Environment
6 De Nicolas -
Je suis sous mac os X et je developper avec emacs depuis toujours et franchement je pense qu'il n'y a pas mieux comment environnement. Visual Studio c'est vraiment l'usine a gaz pour faire des projets qui sont memes pas compatible posix et en plus exporter un projet sous une autre plate-forme c'est la galere. C'est sur que la prise en main d'emacs n'est pas facile mais apres c'est que du bonheur.
7 De aïeaïeaïe -
hé ben.. Que des gens intelligent qui parlent pour rien dire.. ca me fait mal au crâne moi...
8 De Steve -
Si tu n'aimes pas Xcode ou les Unix, retourne développer sous Visual Studio sur ton beau windows tout patché, et ne vient pas te plaindre... personne ne t'oblige à utiliser Unix
9 De number6six -
pas sympa de dire ça. Je viens d'installer xCode afin de tenter de programmer sur Mac. J'espérais trouver une simplicité telle que je la connais depuis que je suis passé au Mac. C'est tout nouveau donc je cherche encore, mais y'a moyen de faire simple avec Automator ; j'espère que xCode 2 m'apportera la même chose.
10 De Olive -
arf. Moi ca fait 3ans qe je dév sous Visual Studio 6/windows
ma boite ma payé un Imac et je doit me mettre a Xcode... j'espere que ca ne va pas etre trop la galere
mais bon j'ai un peu l'habitude des makefile vu que j'ai fais 1an de Visual Studio 1.5 en C16bits
11 De Pet -
Bonjour,
J'ai le même prôblème je ne comprends rien à XCode, pourtant j'ai développé sur des plateformes windows VB, Delphi, ,Windev...bref il y a peut-être une solution sous Mac OSX c'est :
RealBasic, mais je ne l'ai pas encore testé : http://www.realbasic.com/
Cela semble pas mal à première vue. Et c'est multiplateforme OSX, Unix et Windows. Prix environ 400 euros.
Pet
12 De fred -
Bonjour, Moi aussi je suis d'accord!! Personne ne nous oblige a tourner sous unix.... c'est pourquoi de plus en plus de gens se tournent sous merdoze!!! unix c'est super bien...blinder..un scheduler genial....mais la ligne de commande c'est 1902! et sauf si mon agenda ne me ment pas nous sommes en 2006.
Et alors au niveau mentalié...on se croirait presque sous linux..dont le slogant c'est: "vient sous linux c'est super bien et y a bcp d'entre aide...etc.." l'entre aide sous linux c'est: "demmerde toi et lit les man.."
et bien moi qui pensait m'acheter un mac pour coder dessus..... finalement non.
A un de ces jours et courage aux developpeurs mac.
13 De Viper -
Bonjour, vu que je tombe par hasard ici, d'autres pourraient aussi le faire et je tiens donc à dire que pas mal de commentaires précédents sont totalement infondées aujourd'hui! Xcode est bien meilleur que visual studio (et j'utilise les 2 quotidiennement!). Il n'y a pas la meme mentalité derrière c'est tt. Xcode s'adresse à de vrais développeurs qui savent ce qu'il font contrairement à visualstudio. Ce dernier est lourd, plantogène et des qu'on commence à faire de la prog un peu plus avancée c'est bien pire que les pb de linkage de Xcode! Pour les débutants, le seul truc que je peux leur conseiller est d'apprendre d'abord les mécanismes de compilation et de programmation, après ils comprendront leurs erreurs et ne passeront pas 6mois à chercher une solution à un pb tt bete! Il y a aussi aujourd'hui des outils tels qu'automator, applescript et dashcode qui sont destinés aux débutants et peuvent être une trés bonne entrée en matière!
Bref le developpement sur mac est un reve comparé à emacs/linux ou windows/visualstudio!
14 De Vincent -
Suite au commentaire de Viper, j'ai décidé de tester la nouvelle version de XCode, c'est à dire la 2.4. (La 3.0 est annoncée pour Léopard.)
Et bien c'est une bonne nouvelle puisque tous les problèmes que j'évoque sont maintenant corrigés.
Que ceux qui m'ont attaqués en doutant de mes compétences de développeurs se rassurent, maintenant que ces bugs sont corrigés, j'arrive de nouveau à compiler un projet sous XCode. Je vais pouvoir reprendre mon apprentissage de la plateforme Mac OS X.
15 De Rocou -
Ha et bien si tu as compris comment ajouter un Framework, je suis preneur! :-) Je voudrais ajouter le "PostgreSQL Framework" mais j'en fais quoi de tous ces fichiers contenus dans le pack?
Le readme dit: "you need to be familiar with using frameworks in Project Builder/Xcode projects and understand how to install frameworks on your system and how to use embedded frameworks in your applications"
Autrement dit: pour installer le Framework vous devez avoir l'habitude d'en manipuler. Super.
16 De Tom -
Moi en tout cas, j'en suis ravis, je débute en programation, j'ai un powerbookG4, à l'iut on commence par apprendre les dificultés du C. Et moi avec mon ti mac ben je travaille dessus sans prob, alor que les autres rames pour avoir des éditeurs gratuits qui utiliseront les mêmes commandes.
17 De Manu -
Je programme en java, avec xcode et eclipse... franchement c'est du pareil au même.
J'ai enormément programmé sous vs.net et je n'ai réellement compris certains mécanismes que sous xcode. Au moins on sait ce qu'on fait... mais la maîtrise n'est plus a la mode. Le temps de codage est devenu plus important que la performance globale d'un programme.
18 De Anis -
Salut, moi ça fait maintenant plus d'1 an que je code sur XCode pour le boulot. J'ai toujours codé sous Visual Studio. Ça m'a pas pris trop de temps pour apprécier XCode. Il est vrai qu'au départ il y avait des petites choses qui m'ont bloqué, mais dès qu'on comprend la logique de compilation, le tout est nickel. Pour vraiment apprécier XCode, il faut faire du WebObjects qui offre les outils EOModeler et WebObjects builder. C'est fou comme c'est efficace et rapide de créer une application web. Il y a un outil pour chaque couche de l'architecure 3-tiers et le lien entre chaque couche est géré admirablement. Pour ma part, le côté Unix est la cerise sur le gâteau. Je me fais plaisir à automatiser tout tout tout... À la maison, j'ai viré Mac il y a 9 mois.
19 De didil -
c'est sur qu'avec visual studio on n'a pas trop a se casser le bulbe pour développer, sauf avec les MFC qui restent un set d'api hyper powerful. mais le mec qui vient du monde *nix, avec les makefiles justement, les options infernales de gcc et des linkers, et ben le type il est content de retrouver des prises de tetes. non? et comment qu'y font les gurus qui proposent des softs pour l'open source? et des patchs pour des kernels nux ou bsd avant meme leur ptit dej? hein? allez. consolations.