Pregunta

¿Qué recomendaría usted para OS X desarrollo de una aplicación gráfica como los que son posibles en WPF?

Mi fondo es en Smalltalk & Java, pero actualmente yo trabajo principalmente en DHTML/.NET (ASP.NET/C#).

¿Fue útil?

Solución

El cacao.Considerado por muchos como el mejor marco de la aplicación de los siglos.El lenguaje es Objective-C, SmallTalk-como el lenguaje, que inspiró a los creadores de Java.

Realmente, no hay ninguna alternativa razonable a Cocoa para mac OS X de desarrollo, a menos que usted tiene necesidades específicas como querer ser multiplataforma.

Otros consejos

Aparte de Interface Builder, que se incluye como parte de las herramientas Xcode, también se puede usar QT, GTK+, AWT & SWING (para la versión de Java de fondo), los conocimientos tradicionales, Squeak (para su Smalltalk fondo), Zapatos (muy poco fría Ruby conjunto de herramientas GUI), FXRuby (más de Rubí), wxWidgets, XULRunner, y otros, estoy seguro de que he olvidado.Para la mayoría de los nativos como de aplicaciones, sin embargo, Interface Builder es su mejor apuesta.

El cacao es el principal marco para utilizar en Mac OS X.Es lo que Apple utiliza, es lo que la mayoría de los nuevos usos en el desarrollo, y es donde las nuevas características son, principalmente, agregó.

Si vienes de WPF, creo que usted puede encontrar muy pocos de los conceptos de Cacao familiar.(A pesar del hecho de que el Cacao es sólo un poco más.) Está construido en su totalidad en torno MVC, no son propiedad de notificaciones de cambio y a los enlaces, no hay soporte de animación, hay una persistencia y el objeto de gráfico de un marco de gestión, y así sucesivamente.

(También, es posible que desee agregar "mac" a las etiquetas.)

Con el Java de fondo, no se distraen por la ahora obsoleta de Cacao-Java bridge.Temprano en OS X de la historia, Apple proporcionado una (laboriosamente a mano-mantenida) interfaz Java para el Cacao en las bibliotecas.Debido a las diferencias semánticas entre Java y Objective-C, muchas de las características más potentes de Cacao, incluidos los de la Clave-valor vinculante (sobre el que hay muchas otras características que se construyen) es muy difícil, que conduce a la divergencia de Objetive-C y Java capacidades y la eventual amortización de la puente.Todo el Cacao de desarrollo se hace mejor con Objective-C, o uno de los muchos (generado automáticamente) puentes para lenguajes dinámicos como Python o Ruby.

Con sus antecedentes en smalltalk, yo esperaría que usted podría recoger Objective-C en un día o dos.

No estoy seguro de lo WPF, pero la mayoría de desarrollo para el OSX en la plataforma se realiza en Objective-C con el Cacao.Usted puede utilizar el desuso de Carbono Api con otros lenguajes como Java, pero las nuevas aplicaciones para OSX que realmente debe ser desarrollada en Objective-C.Usted puede comenzar con Apple guía con Xcode como su IDE.

Para ponerlo de una manera diferente que los anteriores carteles:si usted no es el diseño de su interfaz en InterfaceBuilder y manipular con Objective-C, entonces usted va a terminar con una aplicación que no se ven, sienten, actúan, o la manera en que una aplicación de Macintosh, y va a sobresalir como un pulgar dolorido a los usuarios.Va a ser una experiencia desagradable para el usuario, en comparación con otras aplicaciones, y que es probable que el deseo de una aplicación diferente a causa de ella.

Kits de herramientas como QT son aceptables si la aplicación ya se utiliza QT y de puerto que desee rápido, pero si usted está escribiendo una nueva aplicación (o con una interfaz gráfica de usuario), a continuación, escriba en el Cacao utilizando ObjC o ObjC++.

Puede echar un vistazo a PyObjc que es un puente entre el lenguaje de programación Python y Objective-C, incluyendo enlaces para Mac OS X componentes, incluyendo el Cacao.

Con un Smalltalk fondo, me gustaría recomendar la recta Cocoa y Objective-C.Sin embargo, si usted está inclinada hacia un lenguaje dinámico, RubyCocoa se permitirá el uso de Ruby que creo que usted encontrará más fácil de recoger de Python.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top