# Objective-C sous Windows et Linux



## brainois (14 Août 2006)

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


----------



## ntx (14 Août 2006)

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.


----------



## Didier Guillion (15 Août 2006)

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


----------



## p4bl0 (15 Août 2006)

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&#233;cutables qui utiliseraient les m&#234;me ressources (les m&#234;me .nib, Lang.lproj, images...)

Cocoa pour windows devait s'appeler Yellow Box, mais &#231;a je ne suis pas s&#251;r que je m&#233;lange pas avec autre chose...


----------



## brainois (15 Août 2006)

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


----------



## Zeusviper (16 Août 2006)

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


----------



## tatouille (19 Août 2006)

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 
&#233;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 &#224; dire des possibilit&#233;s de transformation 3d &#224; volonter


----------



## Didier Guillion (19 Août 2006)

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 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


----------



## tatouille (19 Août 2006)

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


----------



## Didier Guillion (20 Août 2006)

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
> ...




Mais ca doit etre abominablement lent non ?

Cordialement


----------



## p4bl0 (20 Août 2006)

Didier Guillion a dit:
			
		

> Mais ca doit etre abominablement lent non ?
> 
> Cordialement


c'est vectoriel mais &#231;a reste des fichiers images, donc je ne pense pas que ce soit beaucoup plus long, mais je me trompe peut-&#234;tre.


----------



## tatouille (20 Août 2006)

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&#233;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 !!!!


----------



## Didier Guillion (20 Août 2006)

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


----------



## tatouille (20 Août 2006)

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&#233; avec la majorit&#233; des configurations existantes. J'espere qu'ils eviterons cet ecueil.
> 
> Cordialement


ca fonctionne tres bien  mono 933/g4 quicksilver de merde 
( tout avec une nouvelle carte graphique   )
test&#233; sur Ibook G3 / 600 ( pas tout cause of carte graphique int&#233;gr&#233;e (coreAnimation et coreImage pas support&#233;s )


----------



## Didier Guillion (21 Août 2006)

tatouille a dit:
			
		

> ca fonctionne tres bien  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


----------



## tatouille (21 Août 2006)

Didier Guillion a dit:
			
		

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


bah ca va arriver bientot 

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

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

le noyeau a &#233;norm&#233;ment &#233;volu&#233; et utilise plus les possibilit&#233; qu'offre un u-kernel


----------



## p4bl0 (21 Août 2006)

tatouille a dit:
			
		

> bah ca va arriver bientot
> 
> Tiger tourne bien mieux sur un g3 avec de la rame que Panther
> 
> ...


tu penses que Leopard va &#234;tre plus rapide que Tiger sur mon PowerBook G4 15" 1,5Ghz 1,5 Go de ram, 64Mo de vram ???

je l'ach&#232;terai de toute fa&#231;on hein !
juste pour savoir, je vais gagn&#233; en performance quand y aura Leopard ?


----------

