Pregunta

Me he desarrollado en C ++ hace muchos años, pero en estos días soy principalmente un ingeniero de software de Java. Dado que tengo un iPhone, estoy listo para saltar a una MacBook el próximo mes y, en general, estoy interesado en comenzar con el desarrollo de Mac OS (usando Objective C), pensé que solo haría esta pregunta: ¿Qué sigue?

Más específicamente, ¿qué libros debo recoger y hay recursos web que algunas personas podrían señalar? Algunos libros que planeo comprar:

¿Alguien 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 utilizando IntelliJ IDEA, ¿cuáles son algunas diferencias clave que notaré a medida que paso a escribir el código de ObjectiveC en Xcode? ¿Cuáles son las diferencias 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 de idioma específico que alguien quisiera señalar? ¿Qué hay de la construcción de interfaces de usuario? ¿Está más cerca de Swing, la creación de archivos de recursos de Visual C ++ con los que interactúa el código, o se parece más a algunos de los IDE de borland que generarán código para guis?

¿Fue útil?

Solución

Habiendo comprado los dos libros de su pregunta, recomiendo Cocoa Programming para Mac OS X como una forma rápida de aprender el lenguaje y el marco de trabajo de Cocoa, y es probablemente la forma más rápida de comenzar a producir aplicaciones reales en Cocoa. Lo recomiendo altamente. La programación en Objective-C 2.0 es un excelente libro de referencia, pero si ya conoces C, no hay mucho que te enseñe que no puedes aprender del otro libro. Sin embargo, si alguna vez necesitas una lista de todas las palabras clave reservadas en Objective-C, ese es el libro al que debes ir.

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

Lo único que echo de menos de Java es la API de colección. En Cocoa, solo obtienes NSSet, NSArray y NSDictionary, y no hay un análogo a la interfaz de Comparable. Estas clases también son inmutables, pero tienen versiones mutables como NSMutableArray.

En realidad 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 una cuenta retenida de 1. La retención incrementó esa cuenta, liberando disminuyó, y la liberación automática de objetos es un poco más complicada. Nuevamente, el libro de Programación del Cacao 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 un marco para que otros los utilicen, debe programarlo como si la recolección de basura estuviera desactivada. De esa manera, las aplicaciones pueden usarlo ya sea que tengan activada la recolección de basura.

En cuanto a los recursos web, http://cocoadevcentral.com/ es un excelente sitio con tutoriales para principiantes. La Wiki de CocoaDev en http://www.cocoadev.com/ contiene información detallada sobre muchos temas, y por lo general, puede encontrar información y personas útiles en la lista de correo de cocoa-dev http: // lists .apple.com / mailman / listinfo / cocoa-dev

El desarrollo del iPhone es un poco diferente, y los detalles están restringidos por un NDA. Sin embargo, si Apple te aprueba para acceder al centro de desarrolladores de iPhone, Apple ha proporcionado algunas descripciones generales de video de las diferencias, que te indican la documentación que necesitas para pasar de la programación de Mac OS X a iPhone OS X.

Otros consejos

También puedes ver esto:

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

Es un proyecto que intenta poder compilar de forma cruzada programas escritos en una variedad de idiomas de origen a una variedad de idiomas de destino. Uno de los casos de prueba iniciales fue escribir programas en Java y ejecutarlos en un iPhone. Merece la pena ver el video en el sitio.

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

¿Ya estás familiarizado con los corchetes?

Aquí hay un resumen de su justificación Desde mi punto de vista. Espero que esto pueda ayudar también.

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

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