Viniendo de un fondo HTML5 y JavaScript, ¿cuál es el mejor enfoque para comprender los conceptos de Objective-C y comenzar a construir dificultades medias para aplicaciones complejas?

Lo primero que querrá hacer es aprender un poco de C. Objective-C es un superconjunto de C, lo que significa que cualquier programa C válido es un programa Objective-C válido, pero no al revés. Si bien es posible que no escriba mucho C puro al escribir sus primeras aplicaciones de iOS, aprender los conceptos básicos de C (incluida la administración de memoria, la escritura y el proceso de vinculación) ayudará a que su transición de Javascript a Objective-C sea mucho más fluida. No necesita convertirse en un experto en C incondicional ni nada de eso, pero desarrollar una comprensión básica de la “C” en “Objective-C” le dará una base sólida sobre la cual construir.

A continuación, querrá pasar a la parte “Objetivo” de “Objective-C” aprendiendo un poco sobre la programación orientada a objetos. La herencia de prototipos de Javascript (como se explica en Herencia y la cadena de prototipos) es un poco diferente al sistema de herencia de Objective-C (más tradicional), por lo que recomiendo leer la buena introducción de Apple: Programación orientada a objetos con Objective-C. Ese documento tiene algunos ejemplos de código en C, pero afortunadamente ya aprendimos todo sobre eso, así que no hay problema.

Ahora, puede juntar “Objetivo” y “C” aprendiendo algo de sintaxis de Objective-C. Apple tiene una guía bastante buena (Programación con Objective-C), por lo que recomiendo comenzar allí. Una vez que haya pasado por eso, inicie XCode y escriba algunos programas de línea de comandos Objective-C más pequeños seleccionando Aplicación> Herramienta de línea de comandos en el nuevo cuadro de diálogo del proyecto XCode. Siempre me ha gustado hacer juegos de cartas simples como Blackjack, Poker o Go Fish (sin GUI) cuando aprendo un nuevo idioma, ya que tienden a involucrar la implementación de varias clases diferentes sin ser demasiado complejo, pero realmente cualquier programa de línea de comandos hacer.

Muy bien, ahora que has terminado con eso, es hora de hacer algunas aplicaciones. Una vez más, la documentación de Apple se encuentra en el embrague con documentos increíbles como Comenzar a desarrollar aplicaciones iOS hoy: Configuración, Acerca de los conceptos básicos de programación para Cocoa y Cocoa Touch, y la Guía de programación del controlador de vista para iOS. Tanto Harvard (Página principal – Informática S-76) como Stanford (Desarrollo de aplicaciones para iPhone CS 193P) también tienen excelentes clases disponibles en línea de forma gratuita. Sin embargo, creo que la mejor manera de aprender es hacerlo, por lo que recomendaría crear algunas aplicaciones pequeñas para iPhone como Tic-Tac-Toe, Pong o un lector de noticias / RSS para su sitio web favorito. Implementar algo que obtenga datos de la API de algunos sitios web también puede enseñarle mucho sobre cómo crear aplicaciones más complejas.

Una vez que tenga lo básico, ¡depende de usted! El SDK de iOS tiene muchas características geniales, así que explore lo que considere interesante. Algunos documentos que he considerado especialmente útiles incluyen la Guía de programación de ubicación y mapas, la Introducción a los tipos de animación y la Guía de programación de tiempo, y la Guía de programación de OpenGL ES para iOS (aunque no para los débiles). Sería negligente si no mencionara también las Pautas de interfaz humana de Apple (Diseño para iOS 7), que es una lectura bastante esencial si desea hacer una aplicación de iOS con una gran UI / UX. Si tiene una membresía de desarrollador de Apple, le recomiendo hojear las conversaciones de WWDC que también parecen particularmente interesantes. También vale la pena pasar un tiempo para comprender realmente los patrones de diseño de iOS comunes como MVC (Modelo-vista-controlador), delegación (Patrón de delegación), KVO (Guía de programación de codificación de valor-clave). Tener una comprensión firme de estos conceptos realmente puede ayudarlo a llevar su código de Objective-C al siguiente nivel. Finalmente, recomiendo leer los blogs de programación de iOS tanto como puedas para mantenerte al día con lo último y lo mejor; son una gran fuente de consejos y trucos útiles independientemente del nivel de habilidad. Algunos de los que más me gustan incluyen NSHipster, Cocoa with Love y Tutoriales para desarrolladores y jugadores de iPhone / iOS.

¡Y lo más importante, diviértete! La sintaxis de Objective-C es un poco … diferente, ¡pero dale un poco de tiempo y crecerá en ti! (Ojalá.)

Yo recomendaría estos pasos:

– únete a GitHub
– busca proyectos populares de Objective-C de tamaño pequeño a mediano
– Repita estos proyectos a su manera. Probablemente te encuentres con muchas dificultades y la mayoría fracasará
– use la fuente de esos proyectos como clave para guiarlo. Ni siquiera necesitas terminarlos todos.

Creo que esta es la forma más rápida de aprender. Usar el lenguaje te da las habilidades. La sensación de los proyectos te enseña los modismos y conceptos particulares del lenguaje. Los proyectos más populares en su mayoría lo hacen de la manera correcta y también le muestran las limitaciones del SDK estándar. No hay mejor manera de aprender un idioma que sumergirse completamente.