Tengo lo que creo que es una idea arrolladora para una aplicación. Por definición, esta sería una aplicación de escritorio, y se relaciona con algunos servicios de nivel bastante bajo proporcionados por las plataformas para las que lo escribiría (Windows Search Service, Mac OS X Spotlight server).Aplicaciones de escritorio multiplataforma: ¿un enfoque?
Mi intención es tanto una versión de Mac OS X como de Windows. La intención absoluta es, en realidad, no compartir el código, sobre todo porque muy poco (si alguno) de él podría ser común. Debido a esto, tengo la intención de utilizar marcos completamente diferentes (Cocoa/Obj-C en Mac, C#/WPF/PInvoke en Windows) y hacer que ambos se sientan "nativos" de sus plataformas, ciudadanos de aplicaciones de primera clase, si así lo desean.
Mi pregunta es esta: ¿Es mejor intentar y compilar ambos "simultáneamente", es decir, tratar de mantenerlos en paridad de características incluso durante el ciclo de desarrollo; ¿o es mejor hacer una "derecha" y luego seguirla con la otra?
los profesionales para mantener la paridad parecen ser:
- más fácil mantener los algoritmos de alineación, como se implemento en un idioma, Simplemente puerto a otro
- fácil asegurar que en el lanzamiento, ambas aplicaciones están disponibles de inmediato
Los contras de mantener la paridad parece ser:
- Más difícil de hacer; cambio de idioma constante podría hacer estallar la cabeza (ya pasar por esto en el trabajo cada vez que trabajar C# durante 4 días luego de repente tienen que mantener una de nuestras viejas soluciones VB.NET)
Las ventajas de uno, entonces el otra, parecen ser:
- Ningún lenguaje constante conmutación
- una plataforma puede estar en la prueba mientras que el otro se está construyendo
los contras de uno, luego el otro, parecen ser:
- Volviendo a lo que será entonces "viejo" código de puerto de los algoritmos
- Potencialmente perder interés en "hacer de nuevo" lo que ya he hecho
Es cierto que esto es muy ambiciosa. .. Y solo soy un chico, haciéndolo en "tiempo libre" (hah). Si estuvieras en el mismo barco y estuvieras familiarizado con ambas suites de tecnología, ¿cómo te acercarías a esto?
Actualizado
En respuesta a algunas preguntas desde abajo:
Sí, una API común es, sin embargo convenciones de llamada no serían factibles - o al menos, no es fácil. Pretendo definir las mismas clases, pero con un código específico de la plataforma. (Esto parece bastante crítico, ya que Windows Search Service y Spotlight funcionan de manera muy diferente.)
Podría ir con algo así como Java, pero estoy eligiendo no por un par de razones: (1) No he hecho Java en para siempre, y ahora estoy peligrosamente no calificado. :) (2) Parte de esto es un ejercicio para aprender Objective-C haciendo "esencialmente" la misma aplicación en tecnologías con las que estoy familiarizado; y (3) Aunque Swing puede proporcionar una apariencia principalmente nativa en OS X, su interfaz de usuario de Windows nunca se siente del todo bien, y realmente quiero que ambas aplicaciones se sientan como pertenecientes a sus respectivos sistemas.
El tiempo de comercialización no es una gran consideración; Siento que la idea de la aplicación en sí será bastante segura. Más importante que TTM es hacer que la aplicación se sienta bien y proporcionar la funcionalidad ...
Esta fue una pregunta muy subjetiva, y voy a estar un poco en desacuerdo con la comunidad. Estoy aceptando esto porque tomé la decisión de trabajar primero en el lado Mac. (Es por esto que obtuviste el visto bueno en lugar de da5id; su consejo debería haber comenzado en Win, ¿dónde está la diversión en eso? :)) –
Creo que es un buen enfoque. Me gusta la idea de comenzar con el menos. plataforma familiar (estoy asumiendo). Voy a hacer algo similar (solo con mono en lugar de C objetivo y cocoa). – MusiGenesis