¿Qué tan difícil es conseguir que una aplicación Cocoa se ejecute en Windows?
macos (3)
En el artículo de wikipedia sobre Cocoa dice:
También hay implementaciones de código abierto de las partes principales del marco Cocoa que permite el desarrollo de aplicaciones Cocoa multiplataforma (incluido Microsoft Windows), como GNUstep , Cappuccino y Cocotron .
Sin embargo, cuando observé si la aplicación de Mac Tweetie estaba disponible para Windows, el desarrollador la descartó :
Windows no tiene Cocoa, el entorno de programación en el que se crea Tweetie, como tal, parece una mala posibilidad.
Me gustaría tener una respuesta para señalar a los desarrolladores de Tweetie (y como un recurso para otros desarrolladores de cacao) que les diría:
- ¿Qué implementación es la más adecuada para ejecutar una aplicación de cacao en Windows?
- ¿Cuánto trabajo es probable que tome para que la aplicación se ejecute en Windows?
- ¿Qué tan fácil / difícil es mantener un código base común para Mac y Windows?
- (¿Alguna otra consideración que me haya perdido?)
Por supuesto, si sería demasiado trabajo, me gustaría saberlo también antes de sugerirlo y potencialmente enviar a alguien más en una búsqueda infructuosa.
Entre GNUstep, Cappuccino y Cocotron, Cocotron es la única opción posible para portar una aplicación de Mac a Windows. Cappuccino es para web y GNUstep solo se ejecuta sobre cygwin o mingw, lo que significa que la GUI no se parece en nada a las aplicaciones nativas de Windows.
Teóricamente es posible crear aplicaciones de ventanas de cacao utilizando Cocotron. Sin embargo, la realidad es que todavía es muy difícil de usar y todavía es bastante limitado en la API de Cocoa.
Por lo tanto, dos posibles soluciones:
- Intente eliminar los códigos que no son compatibles con Cocotron en la base de códigos original y realice la compilación cruzada. Mantener la base del código común será doloroso.
- Iniciar una nueva GUI en absoluto, no hay una base de código común. dos opciones aquí
- Inicie un proyecto multiplataforma con un marco de aplicación cruzado como Qt o Java.
- Iniciar un proyecto de Windows solamente. Hay muchas opciones aquí, aplicación .Net WinForm, MFC, etc.
Hay compiladores de Windows para Objective-C (el lenguaje de programación usado 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 solo Windows OS OS 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 utiliza solo tecnologías Mac OS X como Core Animation. Esto no existe en Windows, por lo que los agradables efectos de animación presentes en las aplicaciones deberían implementarse de una manera completamente diferente.
No olvides
- "Las partes principales de los marcos de cacao" no son lo mismo que "la totalidad de los marcos de cacao". Tweetie podría estar usando algo que falta.
- Tweetie podría (muy probablemente está) utilizando API de los marcos que no son de Cocoa, como Core Foundation, Core Services, Core Graphics y Core Animation. Un puerto de los marcos de Cocoa solo no incluirá ninguna de estas API, e incluso un marco de emulación de Mac-API más completo no incluirá todos ellos.
- Estos marcos están persiguiendo eternamente a Apple. Incluso si se ponen al día, se atrasarán instantáneamente de nuevo a partir del próximo lanzamiento de Mac OS X. Los desarrolladores de Mac ya han postergado el uso de nuevas API en las nuevas versiones de Mac OS X mientras esperan que los usuarios se actualicen a esas nuevas versiones; ahora le está pidiendo a atebits que espere a que el desarrollador de otro marco se ponga al día con Apple nuevamente.
- 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 apoyo.
- Le está pidiendo a atebits que agregue una tercera plataforma a una aplicación que ya existe en dos. Apoyar una plataforma es mucho trabajo. Soportar dos plataformas es muchísimo trabajo. ¿Apoyando a tres? Ahora te estás metiendo en el territorio de la gran compañía.
Así que, incluso con estos marcos similares a Cocoa, la respuesta es: difícil.