2008-09-25 14 views
12

He desarrollado en C++ hace muchos años, pero en estos días soy principalmente un ingeniero de software Java. Dado que tengo un iPhone, estoy listo para la primavera para una MacBook el mes que viene, y estoy interesado en comenzar con el desarrollo de Mac OS (usando Objective C), pensé que simplemente haría esta pregunta: ¿Qué sigue?Desarrollador Java cumple Objective-C en Mac OS

Más específicamente, ¿qué libros debo recoger, y hay algún recurso web que algunas personas puedan señalarme? Algunos libros que estoy planeando comprar:

Cualquiera que esté familiarizado con estos títulos? Finalmente, estaría muy interesado en un resumen de lo que debería estar preparado para esperar, una vez que me embarque en este viaje. Como alguien que se desarrolla en Java usando IntelliJ IDEA, ¿cuáles son algunas diferencias clave que notaré a medida que me muevo a escribir código ObjectiveC en Xcode? ¿Cuál es la diferencia entre el desarrollo de escritorio de Mac OS y el desarrollo de iPhone? Al estar acostumbrado a la recolección de basura de Java, ¿qué debo saber sobre la recolección de basura/gestión de memoria de ObjectiveC? ¿Algún otro problema específico del lenguaje que alguien quisiera señalar? ¿Qué hay de construir UI? ¿Está más cerca de Swing, creando archivos de recursos de Visual C++ con los que el código interactúa, o se parece más a algunos de los IDEs de Borland que generarán código para guis?

Respuesta

11

haber comprado tanto de los libros en su pregunta, recomiendo cacao programación para Mac OS X como una forma rápida de aprender el idioma y el marco de cacao, y es probablemente la manera más rápida para empezar a producir bienes aplicaciones en Cocoa. Lo recomiendo altamente. La programación en Objective-C 2.0 es un excelente libro de consulta, pero si ya conoces C, no hay mucho que te enseñe que no puedas obtener del otro libro. Sin embargo, si alguna vez necesita una lista de todas las palabras clave reservadas en Objective-C, ese es el libro al que debe dirigirse.

Toda la interfaz de usuario se puede generar de forma progmática, pero le resultará mucho más fácil utilizar el Interface Builder, que viene con XCode, para diseñar la interfaz de usuario. Terminarás con mucho menos código. Con enlaces, incluso puede eliminar código que no está directamente relacionado con la disposición de la interfaz. Los detalles están en el libro Cocoa Programming for Mac OS X.

Lo que más extraño de Java es la API de recopilación. En Cocoa, acaba de obtener NSSet, NSArray y NSDictionary, y no hay ningún análogo para la interfaz Comparable. Estas clases también son inmutables, pero tienen versiones mutables como NSMutableArray.

De hecho, no he jugado con la recolección de basura en Objective-C 2.0. En versiones anteriores de Objective-C, la administración de la memoria se manejaba mediante los métodos de retención, liberación y liberación automática. Los objetos se crearon con un conteo de retención de 1. Retener incrementó ese conteo, soltarlo, disminuirlo y liberar objetos automáticamente es un poco más complicado. De nuevo, el libro de Programación de Cocoa lo explica bien. La recolección de basura es una opción, y si está activada, los métodos de retención, liberación y liberación automática no hacen nada. Sin embargo, si está escribiendo una biblioteca o marco para ser utilizado por otros, debe programarlo como si la recolección de elementos no utilizados estuviera desactivada. De esa forma, las aplicaciones pueden usarlo si tienen o no activada la recolección de basura.

En cuanto a recursos web, http://cocoadevcentral.com/ es un gran sitio con tutoriales para principiantes. El CocoaDev wiki en http://www.cocoadev.com/ contiene información detallada sobre un montón de temas, y por lo general se puede encontrar información útil y personas en la lista de correo de cacao-dev http://lists.apple.com/mailman/listinfo/cocoa-dev

el desarrollo del iPhone es un poco diferente, y los detalles están restringidos por una NDA. Sin embargo, si Apple lo aprueba para obtener acceso al centro de desarrolladores de iPhone, Apple proporcionó excelentes descripciones de video de las diferencias, que le indican la documentación que necesita para pasar de la programación de Mac OS X a la de iPhone OS X.

1

Obtenga Cocoa Programming para Mac OS X. La mayoría de sus preguntas serán respondidas por ese libro. También puede comenzar a leer Become an XCoder y Cocoa Dev Central.

El SDK de iPhone todavía está bajo NDA por lo que no podrá encontrar ningún recurso en línea sobre él, excepto el proporcionado por Apple.

Cocoa UI se basa en MVC. Utiliza Interface Builder para diseñar sus vistas y luego vincularlo a sus modelos y controladores. El objetivo C es una mezcla de C y Smalltalk.

+1

Disculpa el no aceptar tu respuesta. Fue muy útil. Solo quiero ayudar al novato (Michael Buckley) aceptando el suyo. ¡Gracias! –

+0

No hay problema. Su respuesta es más informativa que la mía. ¡Incluso lo voté! – jop

0

Otra opción para ti es jaiPhon, que te permite escribir aplicaciones java que se traducen al iPhone en tiempo de compilación.

No sé si aún está disponible, o si es un artículo comercial o lo que sea, pero es interesante, no obstante.

http://www.jaiphon.com/

+0

Interesante. Honestamente, creo que hay algo que decir para aprender Objective C, el entorno de programación y xCode. La falta de soporte nativo de Java para el iPhone es decepcionante, pero me gusta lo que he estado leyendo sobre las herramientas de desarrollo de Mac. –

+0

espere un minuto ... Revisé su sitio ... parece vapor-ware ... :-( –

+0

Deberá aprender a trabajar con el sistema en el nivel que los depuradores y otras herramientas le expongan, o lo hará se perderá por completo en el instante en que salga de los límites de la herramienta de traducción. –

0

También puedes ver esto:

http://www.xmlvm.org/overview/

Es un proyecto que trata de ser capaz de programas escritos en una variedad de idiomas de origen a una variedad de idiomas de destino compilar en forma cruzada. Uno de los casos de prueba iniciales fue escribir programas en Java y ejecutarlos en un iPhone. Ver el video en el sitio vale la pena.

Dicho esto, no lo he intentado. El proyecto parece bastante beta, y no hay mucha actividad en su sitio SourceForge.

0

Creo que se sentirá bastante desnudo al saltar de IntelliJ a Xcode. Pero esto es solo desde una perspectiva de herramienta. ¡Trae ropa extra (TextMate + FScript)!

+0

textmate sobre xcode para desarrollo obj-c? estoy en desacuerdo. xcode es increíble. y es gratis;) – lajos

+0

Definitivamente echo mucho de IntelliJ. Pero parece que XCode tiene un conjunto de filosofías muy diferentes, así que voy a reservar el juicio hasta que comprenda esas filosofías y empiece a escribir algunas aplicaciones no triviales que lo utilicen. –