Premiers contacts avec MacOS X
Par Laurentj le vendredi, février 3 2006, 15:48 - Projets - Lien permanent
Cela fait maintenant deux semaines que l'unique IMac G5 de la boîte a été transféré du bureau de Daniel vers le mien. Je l'utilise pour faire les adaptations nécessaires sur Etna pour en produire une version MacOSX.
J'ai donc fait d'abord connaissance avec l'environnement graphique de Mac : il est indéniable qu'il est agréable à utiliser, avec notamment toutes ces petites animations et "gadgets" graphiques qui font plaisir à l'oeil. Je trouve le finder bien fait, bien qu'au premier abord, au niveau fonctionnalités, ça ne change pas trop de Konqueror, ou de l'explorateur Windows. Mais il y a pleins de petits détails qui font que je le trouve vraiment sympa et donne une autre vision du bureau. Tenez par exemple, j'ai toujours eu horreur d'utiliser l'affichage des listes de fichiers en mode "grandes icônes". J'ai toujours préféré afficher en mode liste détaillée. Mais avec le finder, ça ne me gène pas. Allez savoir pourquoi :-)
Le fait d'avoir toujours les menus des applications en haut de l'écran fait un peu bizarre au début. Tout comme le fait d'avoir encore le menu d'une application alors qu'on vient de fermer sa fenêtre.
Mon contact en tant que développeur a toutefois été plus rude. J'ai passé au moins une semaine avant d'avoir reussi à compiler ne serait-ce que Firefox 1.0.7 (Etna est basé sur cette version). Et vas-y que je n'ai pas la bonne version de X-Code (le sdk macos-x), que je n'ai pas la bonne version de gcc, ni les bons paramètres de compil etc...
En fait, j'avais un problème que j'ai compris plus tard en fouinant dans le wiki devmo : Firefox 1.0.7 n'est compilable en l'état que sur la version 10.2 et 10.3 de MacOS. Or je suis en 10.4. C'est possible en 10.4, mais en appliquant un patch, et uniquement avec gcc 3.3. Il a fallu aussi que je mette à jour XCode "à la main".
J'ai perdu aussi beaucoup de temps sur la compilation en elle-même. Car en effet, j'ai fait beaucoup de tentative, et la compilation de Firefox prend au moins une heure sur ce Mac (contre une demi-heure sur mon PC à 3ghz). Et comme je n'ai pas de bol, les erreurs de compil apparaissaient bien entendu vers la fin du processus...
Une fois la compilation reussie, j'ai eu des problèmes de lancement : j'avais la fenêtre d'Etna (figée), mais pas ses menus. J'avais beau re-vérifier mon code, faire une comparaison avec ce qui se faisait dans Firefox ou Nvu (oui parce qu'il n'y a aucune doc sur le dev spécifique à MacOs en XUL). En fait, il n'y avait pas de problème de code : je m'évertuer simplement à lancer le binaire que l'on trouve classiquement dans un repertoire dist/bin du repertoire de compil de Mozilla, alors qu'en fait, le vrai binaire version MacOs X se trouve dans un repertoire spécifique, Etna.app, avec une arborescence spécifique à MacOs X (comme pour toute application MacOS X).
Quand on ne connait pas encore bien un nouvel environnement, forcément, on galère et malheureusement, sur MacOsX, on ne peut pas faire confiance à son expérience.
Cependant Etna commence à fonctionner sur Mac. Encore quelques problèmes à régler, dûs notament à cette histoire de menu détaché de la fenêtre. Genre une commande de menu tentant d'accéder à la fenêtre sans vérifier qu'elle est là, ce qui, lorsque la fenêtre est fermée, cause évidement problème ;-). Il me restera alors à voir comment faire un paquet "dmg". Et ce sera bon la semaine prochaine pour une version 0.3 d'Etna ;-)
Commentaires
j'ai deja hate de voir cela, fait attention si tu t'habitue à l'interface graphique de osx tu va plus pouvoir t'en passer
Un dmg, y a rien de plus simple à faire avec l'utilitaire de disque (Dossier /Applicatons/Utilitaires).
Pour le dmg, j'utilise la ligne de commande suivante
hdiutil create -srcfolder <répertoire contenant le .app> -volname <Nom du volume> <fichier dmg> -format UDZO -imagekey zlib-level=9C'est plus pratique pour faire des scripts bash
Si ça peut aider, j'ai appris beaucoup sur Mac OS X en lisant la doc d'Éric Lévénez sur NeXTSTEP, par exemple sur les wrappers, et aussi en lisant la doc de GNUStep. On n'y pense pas toujours, alors que ce sont des mines précieuses d'informations.
Mouais, MacOS X, c'est la super interface graphique ou t'es obligé de cliquer pour avoir le focus, puisque le menu est coincé très étrangement en haut (autant dire qu'avoir ses applis en plein écran frise l'indispensable) ; ah non, je me trompe, certaines applis (compilés avec des bibliothèques graphiques "étrangères") ont leur menus qui reste dans la fenêtre, c'est plus homogène comme ça :D. En tout cas, je vois que je ne suis pas le seul à galérer pour faire des portages (en plus, je n'ai pas de machine dispo, un petit ssh à la rigueur) ; bref, les arborescences catastrophiques (pas vu pareille horreur depuis SunOS) et la notion très vaguement aperçue de "posix" obligent par exemple à mettre des macros spécifiques "darwin" dans son configure.ac, vraiment pas glop :(. Sans compter que trouver l'aide de développeurs sur ce genre de station propriétaire relève du pur défit...
Palpatine : Pour l'utilisateur (je parle d'un utilisateur habitué, pas d'un type qui débarque sur un mac et a déjà râlé 10 minutes contre la souris et son bouton), il est très pratique d'avoir ses menus en haut :
Je suis consciente qu'il y a aussi des inconvénients, mais il ne faut pas oublier les avantages.
Maintenant, pour le développeur, je suis d'accord que c'est galère de faire des applis multi plateformes qui passent bien sous mac (comme le fait très bien Firefox). Par contre, il paraît que les applis mac pur sont assez aisées à faire (on dit, je ne développe pas), grâce aux outils fournis par Apple...
Ah, le dev sous Mac OS X. Une longue histoire. Imagine ce que ça a été pour faire compiler OpenOffice.org alors que, comme toi, j'avais (presque) jamais touché à un Mac côté dev avant :P
J'ai quand même mis 2 mois à faire compiler la bestiole :))