2009-02-28 9 views

Respuesta

9

Creo que podría usar Cocoa-Cocoa Touch o Cocoa Touch-Cocoa y aún así tener una buena idea de lo que implica programar para cualquier plataforma. Intenté el desarrollo de Cocoa en mi Mac hace unos años y estaba bastante confundido. Finalmente decidí utilizar la programación de iPhone, y recogí Beginning iPhone Development: Exploring the iPhone SDK, trabajé en ese libro durante algunas semanas, y ahora entiendo mucho, mucho mejor. En realidad, todo lo que se necesita es una buena explicación de la programación de Mac. Estoy bastante seguro de que podría retomar la programación regular de Cocoa con mucho menos esfuerzo ahora. Si hubiera empezado con la programación regular de Cocoa, estoy bastante seguro de que habría podido elegir la programación de iPhone con bastante facilidad. Hay diferencias, pero hay muchas similitudes (muy buenas) entre las dos plataformas.

PD, recomiendo encarecidamente ese libro si realmente está interesado en el desarrollo de iPhone. Vale la pena cada centavo.

10

Hay mucha superposición, pero si su propósito en el aprendizaje es hacer programación de iPhone, entonces aprenda directamente la programación de iPhone.

Como efecto secundario, podrá realizar la programación de aplicaciones Mac más fácilmente si alguna vez lo desea.

+2

La otra ventaja de este enfoque es que la programación iPhone es básicamente un subconjunto de programación Mac. Ir por el otro camino requeriría que descubrieras lo que se ha ido. – Andy

+0

@Andy: no del todo. Algunas API en iPhone se limpian en comparación con Mac Cocoa. Se puede ver que la falta de problemas de compatibilidad con versiones anteriores le permitió a Apple repensar (o al menos renombrar) algunas cosas. El resultado es que tropezarás con pequeñas diferencias en ambos sentidos. – Kornel

3

Hay similitudes, pero si el objetivo es el desarrollo de iPhone, será mucho mejor comenzar a aprender en esa plataforma y luego subir a la Mac. Hay mucho más en marcha tanto en los marcos de la interfaz de usuario, y en términos de lo que puede hacer IB, por lo que puede acostumbrarse a algún aspecto del sistema que no está presente en el iPhone (o hecho de otra manera).

Las clases de base NS son muy parecidas, pero incluso hay diferencias.

También tenga en cuenta que el simulador compilará y ejecutará código Mac que no se compilará ni ejecutará en el teléfono, al usar los documentos siempre los mantendrá enfocados en la sección SDK de iPhone.

+0

¿a qué te refieres con "al usar los documentos siempre los mantienes enfocados en la sección SDK de iPhone"? – Thanks

+0

En el lado izquierdo de la ventana de documentación, puede seleccionar diferentes conjuntos de documentación. Puede mirar el conjunto de Mac OS, o el conjunto de iPhone (de hecho, varias versiones), o creo que todo. De manera predeterminada, creo que estás viendo el conjunto OS X que tiene elementos que no puedes usar en el teléfono. –

7

Normalmente, estoy de acuerdo con las otras respuestas aquí: aprenda directamente el tema que le interesa. Pero en el caso de Cocoa/Cocoa Touch, sería mejor que lea Cocoa Programming for Mac OS X, 3rd ed. by Aaron Hillegass. ¡Es tan malditamente bueno!

+2

Es un buen libro pero no necesariamente es mejor que Beginning iPhone Development para este propósito. –

+0

Actualmente estoy leyendo ambos libros, pero creo que me centraré en el iPhone ahora. El capítulo de Aaron sobre administración de memoria me confundió un poco y no le gusta usar propiedades, que se usa ampliamente en el libro de LaMarche. Pequeñas cosas, pero me molestan lo suficiente como para hacer que me concentre en uno u otro. –

3

Una diferencia entre Cocoa Touch y Cocoa es en el área de la gestión de la memoria.

Si por casualidad aprendes Objective-C por primera vez (o posiblemente cualquier lenguaje basado en C por primera vez), comenzaría con Cocoa Touch.

Mi razonamiento es que el iPhone no es compatible con la recolección automática de basura, y es posible que le resulte más fácil aprender la (más difícil? Ciertamente menos automática) forma que al migrar al desarrollo de OS X apreciar los atajos que La plataforma OS X te da.

Si aprende el desarrollo de Cocoa en Leopard inicialmente, puede sentirse frustrado por la administración de memoria aparentemente más primitiva disponible en el iPhone.

Sin embargo, los dos son muy similares.

En pocas palabras, si quiere aprender a programar para el iPhone, avance y salte al iPhone.El desarrollo de Mac OS X no es un requisito previo, solo un conjunto de habilidades muy similar.

1

He enseñado a desarrolladores de Mac y desarrolladores de iPhone, y mi experiencia es que generalmente es mejor aprender Mac primero, particularmente porque puedes obtener una sólida base en Cocoa usando Cocoa Programming for Mac OS X, que sigue siendo el mejor libro para aprender el cacao. patrones alrededor. Hasta ahora no he encontrado un buen libro para iPhone que enseñe los temas clave que necesita saber, y que diferencia la programación de Cocoa/Touch de Java, .NET y otros sistemas. He escrito un par de artículos recientemente que puede ser útil como usted piensa acerca de esto:

iPhone Course Syllabus

Review of iPhone Developer’s Cookbook

+0

Gracias por los enlaces! –

1

He ido a través de la misma pregunta que usted, aunque mi enfoque inicial fue más sobre el desarrollo de Mac, el iPhone vino después. De ninguna manera soy un codificador de cacao experto aún, pero las cosas están mejorando rápidamente. Encuentro que las cosas que aprendí sobre el cacao en la Mac son bastante útiles en el iPhone; El desarrollo del iPhone ciertamente fue mucho más rápido que mis primeros pasos en el cacao en la Mac ...

En la práctica, encuentro que ambas habilidades son útiles. Estoy haciendo un juego para iPhone, pero el conjunto de datos que usa (los rompecabezas reales) se crean usando una pequeña aplicación de cacao que he desarrollado para Mac. ¿Hay alguna razón específica por la que no quieras aprender el desarrollo de Mac? ¿No necesitas herramientas de desarrollo/diseño adicionales para tu juego?

(captura de pantalla de la aplicación Mac: http://www.qixis.com/images/edit16-screenshot.png)

+0

Por favor, actualice su enlace. –

Cuestiones relacionadas