¿Cómo fue tu experiencia de desarrollo de aplicaciones iOS?

Muchas fallas. Mucha frustración Muchos plazos mal calculados, freakouts de última hora, errores y pánico.

Todos piensan en el desarrollo de aplicaciones como si fuera un volcán de dinero, y aunque puede serlo, si entras en el desarrollo de aplicaciones como un primer momento y esperas ganar millones, seguramente te decepcionará.

Para los desarrolladores, el desarrollo de aplicaciones tiene una curva de desarrollo bastante empinada. El marco MVC, Objective-c, además de enviar una base de código a los usuarios a los que no se puede enviar fácilmente las revisiones, puede ser frustrante. Todo el proceso de envío de iTunes puede ser muy confuso: desde registrar un perfil de aprovisionamiento hasta enviar su binario a iTunes, a veces puede ser un enigma.

Para los diseñadores por primera vez, el desarrollo de aplicaciones también puede ser un poco complicado. Tiene una selección de fuente predeterminada limitada, y aunque puede importar fuentes personalizadas, el proceso es ambiguo. Diseñar para una pantalla tan pequeña es difícil, la orientación múltiple, tener que ajustarse a los objetos de la interfaz Cocoa Touch, y también es difícil diseñar tanto para la pantalla estándar como para la retina.

En cuanto a la estrategia de marketing, descubrirá que uno no puede rastrear fácilmente las conversiones e instalaciones reales en las aplicaciones de iOS debido al sandboxing, por lo que a veces, es posible que no sepa completamente qué tan bien está funcionando su campaña de marketing en redes de publicación de terceros o campañas internas. .

Eh, hay muchas cosas. Simplemente lo hice sonar completamente no divertido y frustrante, pero el proceso es muy gratificante. Trabajar en el ámbito de la aplicación es muy diferente a impulsar un proyecto web o una pieza de software de escritorio, ya que el ciclo de vida del proyecto puede ser corto. Es de ritmo rápido, es dinámico, es nuevo y diferente cada día, pero eso también puede ser una fuente de estrés.

¡La mejor de las suertes!

Tuve una idea para una aplicación y comencé a desarrollar usando PhoneGap. Soy muy competente con las tecnologías web, así que pensé que eso me ahorraría algo de tiempo. Cerca del final de la implementación, decidí convertirme en Native con la aplicación. No había nada malo con PhoneGap, pero necesitaba un poco más de control y no necesitaba plataformas cruzadas, por lo que comencé el proceso de aprender Objective-C.

Objective-C por sí solo no es difícil de entender. La sintaxis es un poco interesante, al igual que el mensaje que pasa, pero cuando te casas con SmallTalk y C en tu mente, estás listo. Lo que fue más difícil fue el concepto de MVC de Apple, cómo lo usaron en sus marcos y cómo Storyboards y Interface Builder se integraron en su proyecto.

Las primeras tres aperturas fueron probablemente DOA. No llegué a ninguna parte. Claro, podría burlarme de mi interfaz en Storyboards, pero no hizo nada útil. Personalmente, sentí que había demasiada magia. Y entonces me di por vencido y comencé a construir mi UI en código.

Una vez que hice eso, las cosas se volvieron mucho más fáciles. La aplicación se armó notablemente rápido (en aproximadamente la mitad del tiempo que tardó en PhoneGap), y aunque algunas cosas eran extranjeras al principio, se superaron rápidamente. Miro el código ahora y pienso, realmente prefiero Obj-C como lenguaje, y el marco de Apple es bastante agradable.

La interfaz de usuario de mi aplicación se concibió inicialmente para el iPad, por lo que no creo que haya tenido opciones terriblemente difíciles a la hora de diseñar para el tamaño de la pantalla. Realmente no hay diferencia en la interfaz de usuario entre el iPhone y el iPad, ya que la interfaz de usuario alrededor del contenido es bastante escasa. Pude ver para otras aplicaciones cómo la aplicación para iPhone tendría que cambiarse dramáticamente en comparación con la interfaz de usuario del iPad, pero aquí no era una necesidad. Eso no quiere decir que la pantalla más pequeña a veces no me pillara por sorpresa durante las pruebas, lo hizo, varias veces, pero las soluciones fueron fáciles de implementar y no requirieron una revisión de la interfaz de usuario grave.

Hay mucha información excelente (el sitio de Ray Wenderlich es uno) que ayudó inmensamente. También hay algunos libros buenos por ahí: ayudaron, pero no particularmente. Google, Stack Overflow y el sitio de Ray fueron las mejores ayudas cuando me topé con algo que no entendía del todo. La documentación de Apple también es bastante buena.

Por otro lado, hay mucha información que no siempre ayudó. MRC vs ARC (estaba usando ARC), antiguas formas de hacer las cosas antes de iOS 4 o 5, etc. Mirar las fechas en que se escribió algo ayudó a este respecto a determinar hasta qué punto se podía confiar. [Eso no quiere decir que la información no hubiera funcionado, solo para decir que hay nuevas formas, quizás mejores, de hacerlo ahora.]

Al principio, el entorno XCode era completamente extraño para mí. Ahora creo que me he vuelto bastante productivo y realmente no querría codificar en ningún otro entorno para iOS. A veces es un poco loco, y a veces funciona lentamente, pero como IDE, es de primera categoría.

Personalmente, he encontrado que la experiencia es gratificante, divertida, frustrante, emocionante, frustrante e increíble. Ver finalmente que su proyecto se ejecuta en un dispositivo real es increíble, IMO. Verlo ejecutándose en los dispositivos de otras personas es fantástico.