Objective-C sous Windows et Linux

brainois

Membre confirmé
10 Août 2006
63
7
48
Bruxelles, Belgique
Bonjour,

J'ai récemment switché vers un superbe MacBook. Je cécouvre l'environnement XCode et la langage Objective-C. Tous deux sont très séduisants...:love: Mais est-il possible de migrer une application développée sous MacOSX et Objective-C vers Windows et Linux? Je sais que gcc est capable de compiler des sources Objective-C... Mais le soucis est plutôt au niveau de l'interface grahique je suppose. Existe-t-il des outils pour faire cette migration?

Merci.

François
 
Il existe une version libre de NextStep (maintenant nommé Cocoa sur mac OSX) : GNUStep disponible sous Windows et Linux. Mais il n'existe pas d'équivalent à Interface Builder (le format nib n'est pas "ouvert") et au fur et à mesure des développement Cocoa diverge de plus en plus d'OpenStep. Désormais Cocoa est bien plus "perfectionné'" qu'OpenStep. Donc pour le portage d'une application Cocoa/Mac OSX vers Windows ou Linux il ne faut pas trop y compter. :zen:
 
Bonjour,

Tu soulève là un probleme épineux. Si tu développe une application sympa, il est plus que certain que l'on te demandera très vite une version pour Windows. Il te faut donc y réflechir et anticiper.

Dans ce cas là, plusieurs possibilités :
- Si ton application utilise "à fond la calle" des caractéristiques spécifiques a Mac OS X, genre WebKit, CoreAudio, CoreVideo et consort, une portion très importante de ton code devra de toute manière etre réécrite voire même repensée, l'interface en fera partie, donc c'est un moindre problème. (Seul QuickTime est bi plateforme)
- Si ton application cherche dès le depart à être plus généraliste, mais que l'interface est minimaliste, il te faudra redéfinir l'interface mais ce ne sera pas trop important.
- Si l'interface est plus conséquente, le format des Nibs étant vérouillé, tu es donc coincé.

Si, en plus tu utilise Obj-C, tu aura du mal à trouver un compilateur compatible sur une autre plateforme. A noter, que je sépare la partie interface du langage car sur Mac, tu n'est pas obligé d'utiliser l'Obj-C, tu peut faire à peut près tout ce que tu veux en C, C++, Java,etc.


Cordialement
 
Il me semble qu'il y avait une rumeur qui disait qu' Apple porterais Cocoa sous Windows, et qu'en fait XCode pourrais faire un peu comme les Universal Binary aujourd'hui : pondre un .app avec dedans Contents/MacOS et Contents/Win, qui contiendrais les deux exécutables qui utiliseraient les même ressources (les même .nib, Lang.lproj, images...)

Cocoa pour windows devait s'appeler Yellow Box, mais ça je ne suis pas sûr que je mélange pas avec autre chose...
 
Merci pour vos précisions.
J'ai envie d'exploiter a fond l'environnement XCode et d'utiliser les technologies mises à dispositions pour les mac. Donc, je laisse pour le moment de côté l'aspect multi-plateforme pour me consacrer à Mac OS... Le jour où la version de rebol pour MacOSX sera finalisée, alors je penserai au multi-plateforme.

A plus.

François
 
truk2oof a dit:
Il me semble qu'il y avait une rumeur qui disait qu' Apple porterais Cocoa sous Windows. ...
Cocoa pour windows devait s'appeler Yellow Box, mais ça je ne suis pas sûr que je mélange pas avec autre chose...
en fait la yellow box c'était sous next et ce n'était pas encore le cocoa tel qu'on le connait aujourd'hui, et sous mac on n'en est toujours aux rumeurs :

http://www.macg.co/mgnews/categories/en_passant/en_passant_118778_1.shtml
 
cocoa est interdependant de quartz et de la base du micro kernel

quartz est un window manager 3d
il faudrait donc porter le moteur + os foundation frameworks

je vois pas l'interet d'un tel cadeau, la virtualisation
est plus interressante windows on osx, la yellow box
était une vision de son temps, et est donc obsolete
on sait faire bien mieux aujourd'hui , surtout que osx sort
enfin du monde image vers le monde vectoriel des resources svg
pour l'UI c'est à dire des possibilités de transformation 3d à volonter
 
tatouille a dit:
cocoa est interdependant de quartz et de la base du micro kernel

quartz est un window manager 3d
il faudrait donc porter le moteur + os foundation frameworks

je vois pas l'interet d'un tel cadeau, la virtualisation
est plus interressante windows on osx, la yellow box
était une vision de son temps, et est donc obsolete
on sait faire bien mieux aujourd'hui , surtout que osx sort
enfin du monde image vers le monde vectoriel des resources svg
pour l'UI c'est à dire des possibilités de transformation 3d à volonter


Je ne comprends pas trop ce que tu ecrit en particulier "surtout que osx sort
enfin du monde image vers le monde vectoriel des resources svg" Ce serait interessant de detailler.

Ansi que "pour l'UI c'est à dire des possibilités de transformation 3d à volonter".

Mais sinon, puisqu'Apple dit qu'il n'y a q'une case a cocher pour compiler pour Intel, ce serait bien qu'ls le fassent de leur coté, non ?

Cordialement
 
l'interface des boutons /gauges / dégardés ... sont des vectoriels sous 10.5

donc des "images/icons" déformable sans pixeliser si tu zoom c'est clean
imagine des bureaux avec des factor zoom différents

mail par exemple en zoom avec tous ces icons en vectoriels + ceux de l'interface
ca revient au meme que de zoomer sous illustrator

et d'un point de vue 3d se sont des points à repositionner
plus besoin de faire des "bidouilles graphiques" pour lisser les effets style genie
 
tatouille a dit:
l'interface des boutons /gauges / dégardés ... sont des vectoriels sous 10.5

donc des "images/icons" déformable sans pixeliser si tu zoom c'est clean
imagine des bureaux avec des factor zoom différents

mail par exemple en zoom avec tous ces icons en vectoriels + ceux de l'interface
ca revient au meme que de zoomer sous illustrator

et d'un point de vue 3d se sont des points à repositionner
plus besoin de faire des "bidouilles graphiques" pour lisser les effets style genie


Mais ca doit etre abominablement lent non ?

Cordialement
 
Didier Guillion a dit:
Mais ca doit etre abominablement lent non ?

Cordialement
non le moteur svg est dans quartz
lire une image et la paint et lire un svg et le paint
ce doit etre infime
(mais tu as raison l'interpretation vectoriel doit etre un peu plus lente
mais la difference n'est pas perceptible )

en revanche pour la déformation 3d tu y gagnes enormement !!!

les machines sont devenues tellement puissantes que l'on peut un peu s'amuser
et faire des trucs bien j'attend le full-web-svg avec impatiente !!!!
 
Hmmm... On verra ce que cela donnera sur un G4 monoprocesseur...
Demander toujours plus de puissance pour faire tourner un OS entraine le risque de perdre la compatibilité avec la majorité des configurations existantes. J'espere qu'ils eviterons cet ecueil.

Cordialement
 
Didier Guillion a dit:
Hmmm... On verra ce que cela donnera sur un G4 monoprocesseur...
Demander toujours plus de puissance pour faire tourner un OS entraine le risque de perdre la compatibilité avec la majorité des configurations existantes. J'espere qu'ils eviterons cet ecueil.

Cordialement
ca fonctionne tres bien :siffle::D mono 933/g4 quicksilver de merde
( tout avec une nouvelle carte graphique )
testé sur Ibook G3 / 600 ( pas tout cause of carte graphique intégrée (coreAnimation et coreImage pas supportés )
 
tatouille a dit:
ca fonctionne tres bien :siffle::D mono 933/g4 quicksilver de merde
( tout avec une nouvelle carte graphique )
testé sur Ibook G3 / 600 ( pas tout cause of carte graphique intégrée (coreAnimation et coreImage pas supportés )


Je demande a voir par moi meme... ;)
La notion de rapidité et fluidité est tres subjectif, Mac OS X 10.0 n'était il pas "fluide et reactif meme sur un G3"... Tu parles...

Cordialement
 
Didier Guillion a dit:
Je demande a voir par moi meme... ;)
La notion de rapidité et fluidité est tres subjectif, Mac OS X 10.0 n'était il pas "fluide et reactif meme sur un G3"... Tu parles...

Cordialement
bah ca va arriver bientot :D

Tiger tourne bien mieux sur un g3 avec de la rame que Panther

je dirais c'est normal : gros progrès côter gestion hardware
( xnu optimisation et ajout de supports , cleanage des Drivers de base , IOkit )
donc tout cela améliore les performances de la bestiole

le noyeau a énormément évolué et utilise plus les possibilité qu'offre un u-kernel
 
tatouille a dit:
bah ca va arriver bientot :D

Tiger tourne bien mieux sur un g3 avec de la rame que Panther

je dirais c'est normal : gros progrès côter gestion hardware
( xnu optimisation et ajout de supports , cleanage des Drivers de base , IOkit )
donc tout cela améliore les performances de la bestiole

le noyeau a énormément évolué et utilise plus les possibilité qu'offre un u-kernel
tu penses que Leopard va être plus rapide que Tiger sur mon PowerBook G4 15" 1,5Ghz 1,5 Go de ram, 64Mo de vram ???

je l'achèterai de toute façon hein !
juste pour savoir, je vais gagné en performance quand y aura Leopard ?