Desarrollar para iOS

Autor: | Última modificación: 3 de noviembre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Gracias a iOS los desarrolladores somos sexy. ¿A caso antes ligabas diciendo que desarrollas el rich client para una cárnica? Desarrollar para la manzana MOLA MIL.

¿Por qué desarrollar para iOS?

¿Podíamos pensar hace unos años ser desarrolladores indie? Todo el ecosistema de las apps nos puede permitir el lujo de trabajar desde casa y ganarnos la vida decentemente con algunas apps propias con un éxito moderado y/o desarrollar para terceros. Como ejemplo podéis leer la experiencia que Pedro Muñoz nos contó en otro post. Sé de buena tinta que muchas veces tiene que decir que no a proyectos porque no da abasto. ¿Qué profesión actualmente puede permitirse eso y más siendo freelance?

¿Por qué no trabajar en una startup cañera en CA o NY? Lo tenemos todo al alcance.

El lado oscuro acecha

Sí, es verdad, Android tiene mucha cuota de mercado en España y en la mayoría de países (no suele tenerlo en países ricos como USA, UK…) pero, ¿qué revenue generan? Actualmente las ganancias son el doble en iOS que en Android aunque bien es cierto que hace un año aproximadamente era el cuádruple, de ahí lo del acecho…

Podéis hacer una prueba sencilla, juntaos con unos amiguetes y ver cuantos Android e iOS hay y cuanto se suelen gastar en apps 🙂

Y no lo olvidemos, estamos aquí para ganar PASTA, que luego lo que hacemos nos gusta y nos motiva, fenomenal, pero PASTA.

¿Qué opciones tenemos para desarrollar en iOS?

Cada vez existen más alternativas debido a las plataformas cross-platform como Xamarin si vienes del mundo C# o bien desarrollo nativo a partir de Ruby con RubyMotion si eres muy fan de RoR y tienes una buena base de Cocoa y Objective-C. También puedes tirar por el mundo de las apps híbridas con plataformas tipo PhoneGapAppcelerator… que pueden ser una buena alternativa si quieres reciclar un equipo de desarrolladores web.

Los inconvenientes que plantean por ejemplo en el caso de Xamarin es que si no sabemos C# vamos a tener que aprenderlo, en el caso de RubyMotion podría ser la falta de soporte (son dos personas) y con las apps híbridas el problema de rendimiento es muy evidente. Para todas ellas aplica que las mejoras que se introduzcan en iOS no van a estar disponibles inmediatamente en las demás plataformas.

Recientemente hemos visto como empresas del calibre de Facebook y Linkedin han admitido que su estrategia de apostar por HTML5 en sus apps no ha funcionado como esperaban y se han pasado al desarrollo nativo. Y aquí es cuando te preguntas, si empresas con los recursos de Facebook o Linkedin no han podido darle un rendimiento aceptable a las apps híbridas, ¿puede alguien?

Por ello en KeepCoding apostamos por el desarrollo nativo y pensamos firmemente que es la mejor opción. Y desarrollar para iOS es de las mejores opciones con las que nos hemos encontrado.

Desarrollo Nativo

Cocoa, el framework que nos proporciona Apple para Objective-C, es una verdadera maravilla. A mi me encanta y me resulta muy cómodo trabajar con él, una vez pagado el peaje de la curva de aprendizaje de un lenguaje nuevo, se hace todo muy familiar y avanzar rápido es relativamente sencillo.

Las herramientas son gratis, con la letra pequeña de tener un Mac capaz de correr Xcode que es el entorno de desarrollo que nos proporciona Apple (existen alternativas pagando como AppCode). Ni comentar vamos la opción de emulación o hackintosh…

¿[[[Pero cómo] voy a desarrollar] en ese lenguaje tan feo]?

Es raro, para que nos vamos a engañar. Es un lenguaje antiguo, inventado en los 80 por Brad Cox  y Tom Love trás unir C y la filosofía de SmallTalk. Para que no os quejéis tanto, SmallTalk fue diseñado para niños de 5 años simulando frases en ingles (por ello los nombres son tan largos y autodescriptivos). En cuanto a los corchetes… pues te acostumbras 🙂

Una cosa buena de este lenguaje tan verboso es que no hace falta a penas comentarios sobre lo que hace el método, y si tienes que ponerlo es porque el nombre no es lo bastante largo y explicativo. También queda claro lo que es cada argumento, algo de agradecer:

- (void)drawCircleAtCenterX:(CGFloat)x 
                       andY:(CGFloat)y 
                 withRadius:(CGFloat)radius
            withStrokeColor:(UIColor *)strokeColor 
            filledWithColor:(UIColor *)fillColor;

Para que veáis que la lucha con el lado oscuro viene de lejos, el nombre de Cocoa es una broma con Java (jerga americana para referirse al café) ya que es mucho más apetecible un poco de Cocoa que una taza amarga de Java. Cachondos.

Y por eso hay más gente que decide desarrollar para iOS. Y normal, eh.

¡Que la fuerza os acompañe!