2009-04-26 12 views
26

En el wikipedia article on Cocoa que dice:¿Qué tan difícil es ejecutar una aplicación Cocoa en Windows?

También hay implementaciones de código abierto de las partes principales del marco de cacao que permite multiplataforma (incluyendo Microsoft Windows) el desarrollo de aplicaciones de cacao, como GNUstep, Cappuccino y Cocotron.

Sin embargo, cuando miré en si la aplicación Mac Tweetie estaba disponible para las ventanas del desarrollador tenía ruled it out:

Windows no tiene cacao, el entorno de programación que se hace en Tweetie, como tal, parece una pobre posibilidad.

Me gustaría tener una respuesta para señalar los desarrolladores Tweetie (y como un recurso para otros desarrolladores de cacao), que les decía:

  • Qué aplicación es el más adecuado para conseguir un cacao aplicación ejecutándose en Windows?
  • ¿Cuánto trabajo es probable para ejecutar la aplicación bajo Windows?
  • ¿Qué tan fácil/difícil es mantener una base de código común para Mac y Windows?
  • (cualesquiera otras consideraciones que he perdido?)

Por supuesto si sería demasiado trabajo me gustaría saber que también antes de sugerir que el envío y potencialmente a otra persona en una búsqueda infructuosa.

+5

¿Por qué los votos a favor? Es una pregunta válida, incluso si la respuesta es no. –

+6

En serio, esta pregunta es recibir un azote sin motivo. –

+1

+1 Me preguntaba lo mismo. – Zifre

Respuesta

1

Hay Windows compilers for Objective-C (el lenguaje de programación utilizado para escribir aplicaciones de cacao). Sin embargo, Cocoa incluye los marcos para presentar la GUI. Estos marcos visuales son específicos de Mac OS X porque usan ventanas solo OS X y otros controles. Entonces, alguien tendría que volver a implementar los controles en Cocoa para usar los controles de Windows.

Además, estoy bastante seguro de que Tweetie usa solo Mac OS X tecnologías como Core Animation. Esto no existe en Windows, por lo que los buenos efectos de animación presentes en las aplicaciones deberían implementarse de una manera completamente diferente.

+0

¿Qué hay de las implementaciones del marco de trabajo de cacao de la cita de Wikipedia en mi pregunta? –

+0

Y si hay compiladores de Objective-C para Windows, ¿qué son? por favor proporciona enlaces. –

+0

agregó un enlace para obtener más información sobre la compilación del objetivo c en Windows – zpesk

4

Entre GNUstep, Cappuccino y Cocotron, Cocotron solo es una opción posible para portar una aplicación Mac a Windows. Cappuccino es para web y GNUstep solo funciona sobre cygwin o mingw, lo que significa que la GUI no se parece en nada a las aplicaciones de Windows nativas.

Teóricamente es posible construir aplicaciones de ventanas Cocoa utilizando Cocotron. Sin embargo, la realidad es que todavía es muy difícil de usar, y todavía es bastante limitada en la API de Cocoa.

Por lo tanto, dos soluciones posibles:

  • esforzarse mucho para eliminar los códigos que no son compatibles con Cocotron en la base de código original y hacer la compilación cruzada. Mantener una base de código común será doloroso.
  • Inicie una nueva GUI en absoluto, sin una base de código común.dos opciones aquí
    • Inicie un proyecto multiplataforma con un marco de aplicación cruzada como Qt o Java.
    • Inicia un proyecto de solo Windows. Hay un montón de opciones aquí, la aplicación .Net WinForm, MFC, etc.
+0

suena como que la página de la wikipedia es incorrecta y necesita ser editada. –

+0

La tercera opción sería implementar las piezas necesarias en Cocotron y contribuirlas al proyecto, es de código abierto. Por supuesto, esto puede variar en complejidad, pero las personas ya lo han hecho por piezas razonables. Cuantas más personas lo hacen, menos tienen que hacer todos. Si está familiarizado con Cocoa y ya tiene una aplicación escrita, la cantidad de trabajo que se aleja de ella y las características que sacrificaría por otro marco de GUI puede ser más trabajo que simplemente implementar las piezas que necesita en Cocotron. Algo para tener en cuenta, YMMV, por supuesto. –

11

No se olvide:

  1. “partes principales de los marcos de cacao” no es lo mismo que "La totalidad de los marcos de Cocoa". Tweetie podría estar usando algo que falta.
  2. Tweetie podría estar (muy probablemente) usando APIs de frameworks no Cocoa, como Core Foundation, Core Services, Core Graphics y Core Animation. Un puerto de los frameworks de Cocoa por sí solo no incluirá ninguna de estas API, e incluso un marco de emulación Mac-API más completo no los incluirá a todos.
  3. Estos marcos están persiguiendo eternamente a Apple. Incluso si se ponen al día, quedarán instantáneamente rezagados a partir de la próxima versión de Mac OS X. Los desarrolladores de Mac ya posponen el uso de nuevas API en nuevas versiones de Mac OS X mientras esperan que los usuarios actualicen a esas nuevas versiones; ahora está pidiendo atebits a también espere a que el desarrollador del otro framework vuelva a ponerse al día con Apple.
  4. Cualquier segunda implementación de una API existente tendrá errores que la primera implementación no tiene, y viceversa. Estas diferencias causarán problemas de desarrollo y soporte.
  5. Está pidiendo a atebits que agregue una tercera plataforma a una aplicación que ya existe en dos. Soportar una plataforma es mucho trabajo. Soportar dos plataformas es mucho trabajo. ¿Apoyando a tres? Ahora te estás metiendo en territorio de grandes compañías.

Por lo tanto, incluso con estos marcos tipo Cocoa, la respuesta es: Duro.

+0

RE: punto 2. Cocotron dice "Esto incluye AppKit, Foundation, Objective-C en tiempo de ejecución y API de soporte como CoreGraphics y CoreFoundation" –

+0

Cae bajo la segunda mitad de la última oración, entonces, ya que aún falta marcos importantes tales como Core Services (que incluye Servicios de lanzamiento, entre otras cosas) y Address Book. –

Cuestiones relacionadas