2009-08-31 14 views
12

Estoy a punto de comenzar mi proyecto de computación A-Level (High School Level), que con suerte será una aplicación de punto de venta para Mac OS. Desafortunadamente, Objective-C está un poco fuera de mi alcance en este momento y si me atasco en el proyecto, no tengo a nadie que me ayude, así que fallaré en la sección del curso y no entraré a la Universidad. Entonces esto es bastante importante para mí.PyObjc y Cocoa en Snow Leopard

Quiero usar Python para desarrollar una aplicación Cocoa. Sé que necesito PyObjc, sin embargo, todos los detalles en la red parecen suponer que está preinstalado. Aparentemente este es el caso de Leopard y Snow Leopard, pero parece que no lo tengo en Snow Leopard y nunca lo noté en Leopard. Además, he intentado instalar la última versión beta de PyObjc siguiendo las instrucciones en la página de Sourceforge, pero sin suerte.

Realmente apreciaría si alguien pudiera arrojar algo de luz sobre lo que necesita ser instalado, cómo y enlaces a cualquier recurso o tutorial que pueda ayudarme.

¡Gracias de antemano por la ayuda!

Actualización: veo que esta es una pregunta popular, acabo de recibir el 'notable pregunta' insignia para él, así que pensé que iba a actualizar cualquiera que venga a esta página en lo que hice después de conseguir las respuestas.

Desafortunadamente, no pude usar Python para crear una aplicación de Mac. Esto fue bastante decepcionante en ese momento, pero probablemente sea algo bueno. Hice una aplicación de Windows en C# para mi proyecto, era una herramienta para crear y ejecutar aplicaciones de ensamblado en un entorno simulado. ¡Mi profesor del curso ahora ha comenzado a utilizar mi herramienta para enseñar el curso en lugar del suyo! Obtuve un puntaje muy alto en el proyecto de computación (más del 90%) y esto contribuyó a obtener un A * en mi A-Level computacional (el grado más alto disponible) y en consecuencia ingresé a la Universidad de Southampton para estudiar Informática.

Este verano, decidí hacer una aplicación para iPad (próximamente lanzada) y me complace decir que sé que creo que podría hacer una aplicación para Mac OS en Objective-C, ya que creo que ya aprendí lo suficiente. Me alegro de haberme tomado el tiempo para aprenderlo, es un lenguaje excelente y realmente útil para que iOS sea tan popular.

Lo siento por todos los alardes, pero estoy muy contento por ello. Lo que realmente quiero decir es que si vienes a esta página con la esperanza de usar PyObjc para crear aplicaciones de Mac fácilmente, no te preocupes. Lleva algo de tiempo y algo de esfuerzo, pero una vez que haya aprendido Objective-C, es realmente satisfactorio crear aplicaciones con él. ¡Buena suerte!

+0

Tienes ¿Intentó usar macports para instalar PyObjC? –

+1

¿Has instalado la última versión de las herramientas de desarrollo? Nunca he usado PyObjc, pero no creo que sea más fácil que usar Objective-C. Es un lenguaje fácil de aprender y dado que las API de Mac OS X fueron diseñadas teniendo esto en cuenta, funcionan muy bien. Incluso puede utilizar la recolección de elementos no utilizados si no desea preocuparse por la administración de la memoria, pero el recuento de referencias incorporado es lo suficientemente simple como para que nunca me haya gustado utilizar la recolección de elementos no utilizados. También es algo que debes saber si quieres continuar con el desarrollo de Mac. – Amok

+0

Gracias por la respuesta, intentaré usar macports para instalar PyObjc, y tengo la última Xcode 3.2, herramientas de desarrollo y SDK. He intentado Objective-C y tengo un libro sobre él, pero después de haber hecho solo programación básica en el pasado como un hobby y como un curso de secundaria, he tenido problemas con ello. Parece mucho más difícil que C# .NET que he hecho. Además, si no consigo que el software funcione, hay mucho en juego y no conozco a nadie que pueda ayudarme si las cosas van mal. Al menos tengo un amigo que es un poco un gurú de Python si elijo usar PyObjc. – danpalmer

Respuesta

18

Permítame repetir lo que ya se ha dicho. Yo también soy un estudiante que acaba de comenzar un proyecto de desarrollo de Cocoa, y al principio pensé: "Bueno, ya conozco Python, usaré PyObjC y me ahorraré el tener que aprender Objective-C, que se ve más allá de mi alcance. " Aprendí rápidamente que no se puede hacer. Puede desarrollar para OS X sin aprender Objective-C, pero no sin aprender las bibliotecas de Cocoa, que constituyen el 99% de lo que necesita aprender para escribir una aplicación de Cocoa en Objective-C. Objective-C en sí mismo no es tan difícil; son las bibliotecas de Cocoa las que debes invertir para aprender.

PyObjC básicamente utiliza las bibliotecas Cocoa y la sintaxis de Python. Me rendí rápidamente y decidí que si iba a tener que aprender Cocoa, podría usar Objective-C.

Si está buscando aprender, el libro de Aaron Hillegass es un buen lugar para comenzar. ¡Buena suerte!

+0

Ok, no publicaré comentarios sobre todas las preguntas, pero déjenme decir gracias al apoyo de todos. ¡Realmente lo aprecio! Ya he instalado las cosas del desarrollador del disco, pero las cosas de PyObjc no están en Xcode. La razón por la que soy reacio a usar Objc es porque si me quedo atascado posiblemente esté en juego un lugar Uni, y considerando que quiero estudiar CS, no puedo permitirme no obtener una A en este trabajo. ¡También, gracias a Koen! En realidad, es una aplicación de POS que voy a escribir y Checkout me inspiró para usar PyObjc. Gracias a todos una vez más, me has convencido de usar Objc puro, creo. – danpalmer

+0

Ah, y ya tengo el libro de Aaron Hillegass, pero el hecho de que incluye el código para la administración de la memoria me asustó un poco. – danpalmer

+0

FYI, la razón más importante por la que escribimos Checkout en Python fue SQLAlchemy, un gran ORM. Creo que si ese no fuera el caso, usaría Obj-C también. –

7

¿Quiere decir Checkout? :-) Solo lo menciono porque Checkout es precioso y está escrito con PyObjC ...

Sus preocupaciones son válidas, aunque probablemente no tanto como pueda pensar. El uso de PyObjC todavía requiere que aprendas algo de Objective-C y, definitivamente, requieres que entiendas al menos algunos de los frameworks de Cocoa, ya que necesitas llamar a los frameworks de Cocoa cada vez que necesites hacer algún tipo de tarea específica de Cocoa.

Le recomiendo que lea y considere la pregunta SO "Why is the PyObjC documentation so bad?" y "PyObjc vs RubyCocoa for Mac development: Which is more mature?" antes de convencerse por completo de que "solo PyObjC" facilitará las cosas. Me rehúso a desacreditar a PyObjC porque es bastante poderoso e increíblemente útil, pero me doy cuenta de que nada es una bala de cristal, y ningún idioma o tecnología es mejor para todos los problemas.

El lenguaje Objective-C es simple y bastante directo. Los marcos de trabajo de Cocoa generalmente dominan la curva de aprendizaje para los nuevos programadores de Cocoa. Además, tienes StackOverflow y muchos otros recursos para ayudar a responder tus preguntas.(A juzgar por la actividad de la "pyobjc" tag, también tienen una mejor oportunidad de conseguir un buen Objective-C help el SO.)

3

casi no utilizan PyObjC mí mismo, pero cree que necesita para ejecutar el instalador Xcode en el DVD de Snow Leopard con el fin para usar PyObjC.

Además, como dijo Quinn, deberá comprender al menos algo de Objective-C para usar un puente de Cocoa como PyObjC sin arrancarse el pelo. Simplemente no lo aísla completamente.

3

Voy a estar de acuerdo con Quinn aquí. Incluso si ya eres experto en Python, aprender a interactuar con Python y Cocoa no va a ser más fácil que aprender Cocoa con Objective-C.

Objective-C es un lenguaje simple y limpio que es bastante fácil de asimilar. Construir la GUI y conectarla al back-end será más difícil que aprender el Objective-C para escribir el back-end, y construir la GUI y conectarla no es tan difícil.

Siga the Cocoa app tutorial (que debería ser capaz de obtener a través de ella en un día, o tal vez un fin de semana si vas lento) y usted estará bien en su camino.

4

Y como uno de los desarrolladores de Checkout también lo haré (¡hola Quinn!). Por lo que hemos visto, PyObjC funciona bastante bien en Snow Leopard. Hemos creado una de las últimas revisiones de SVN 2.2b con algunas personalizaciones en Leopard y solo hemos movido sobre la carpeta de paquetes de sitio.

Teóricamente, debería poder usar el Python/PyObjC incorporado (solo importa objc, Foundation, AppKit) pero como enviamos/trabajamos con versiones personalizadas de Python y PyObjC no estoy seguro de cuál es exactamente el estado es. La lista de correo no menciona a mucha gente que tiene problemas (solo unos pocos), por lo que podría ser una buena señal.

Buena suerte con el proyecto, y si tiene preguntas específicas de punto de venta que le tira un correo electrónico ;-)

3

Soy un desarrollador de python desde hace mucho tiempo que ha estado haciendo aplicaciones de iPhone por un tiempo (y solo usando mi conocimiento de python para empaquetar archivos de compilación para las aplicaciones en secuencias de comandos), y luego comenzó a hacer algunas aplicaciones PyObjC.

Tendría que decir, PyObjC es más o menos TODAVÍA tener que aprender C objetiva (que ya sé a través de iPhone dev), sin embargo se obtiene varios beneficios bastante fresco si lo usa en lugar

  • Fácil uso de las bibliotecas de Python que conoce (más rápido para usted)
  • Opción para soltarlo y vaya a wxPython si Styimied por Cocoa
  • Tiempo de desarrollo algo más rápido (está escribiendo menos código, y la traducción entre los dos idiomas es bonita maldita sea fácil acostumbrarse).

Además, constructor de interfaces es un poco difícil acostumbrarse a comparativamente hablando, pero si usted es un desarrollador de Python, no es como usted está acostumbrado exactamente a un constructor de interfaz gráfica de usuario funcional de todos modos: OP

Cuestiones relacionadas