Eligiendo un framework de desarrollo para iOS

Una de las primeras cosas que nos planteamos a la hora de emprender esta aventura allá por verano de 2010 fue fijar para qué dispositivos desarrollaríamos nuestras apps. Parece claro que en la actualidad es imprescindible desarrollar para iOS si se desea obtener cierta relevancia, por lo que la familia de dispositivos de Apple fue el primer objetivo que nos fijamos; inmediatamente después nos marcamos como objetivo desarrollar para Android aunque eso formará parte de otro artículo.

Para nuestro primer juego deseábamos un framework lo más sencillo posible de utilizar y cuyo coste fuera lo más bajo posible o, a ser posible, gratuito.

El primer entorno que evaluamos fue, claro está, el entorno que ofrece Apple para desarrollo; esto es usar Cocoa y Quartz para crear nuestro primer juego. Rápidamente lo descartamos ya que aunque nuestras primeras intenciones eran muy sencillas resultaba especialmente tedioso el manejo de animaciones y la temporización de las mismas. Además muchos desarrolladores han planteado problemas de rendimiento y escalabilidad usando esta solución.

Una vez descartada la opción más directa empezamos a indagar por la red para ver qué opciones eran las más potentes, viables y difundidas de entre todas las existentes en el mercado. Dada la popularidad de iOS existen una amplia cantidad de soluciones tanto libres como de pago para implementar juegos bidimensionales tales como Sparrow Framework, Sio2 Game Engine, Air Play SDK y así un vasto elenco de soluciones. En esta primera batida quedaron 3 finalistas: Unity Framework, Adobe Air y Cocos2d.

Instalamos la versión de evaluación de Unity Framework, nos gustaba su potencia y  su carácter multiplaforma pero rápidamente lo descartamos ya que era demasiado complejo para las ideas que teníamos en mente y por tanto la curva de aprendizaje era demasiado pronunciada para lo que estábamos dispuestos a asumir.

De Adobe Air nos atraía prácticamente todo, conocíamos el desarrollo en Action Script, es multiplataforma, el desarrollo es rápido e intuitivo así que asignamos un grupo de trabajo para que desarrollara un primer prototipo de nuestra primera idea sobre Adobe Air. Desde un primer momento vimos que el desarrollo era claro, rápido, estructurado y limpio tal y como imaginábamos en primera instancia si bien parecía que el rendimiento podía ser su talón de Aquiles. Efectivamente, si bien sobre Android el rendimiento era simplemente aceptable en iOS nos encontramos, suponemos que por el prematuro estado de desarrollo del Iphone Packager con un rendimiento simplemente desastroso arruinando por completo las posibilidades de implementar de forma efectiva nuestra primera idea así que aún con el prototipo bastante avanzado hemos aparcado momentáneamente el desarrollo con Adobe Air. En breve publicaremos otro artículo para entrar más en profundidad en las conclusiones llegadas durante este desarrollo.

Paralelamente, otro grupo comenzó a trabajar con Cocos2d; el hecho de que ninguno de nosotros tuviera experiencia previa con Objective-C nos asustaba mucho a pesar de que tenemos experiencia en otros lenguajes orientados a objetos como C++ o Java. Pero pronto nuestros miedos se disiparon, el framework es extremadamente sencillo de instalar y utilizar, En una tarde ya teníamos el entorno de desarrollo de iOS montado, con las librerías de Cocos2d cargadas y ejecutando las demos que acompañan la distribución del producto. La web del producto tiene documentación suficiente para desarrollos sencillos y cuenta con una comunidad de usuarios bastante activa. Se me ha olvidado comentar, que una de sus grandes virtudes es que es software libre y de código abierto por lo que siempre podemos saber qué está pasando en nuestra aplicación. En un par de tardes más, y como ya os digo sin experiencia previa con Objective-C, nos encontrábamos francamente impresionados al ver cómo cargábamos nuestros primeros gráficos y controlábamos con unas pocas líneas de código la pantalla táctil o el acelerómetro de nuestros dispositivos; poco después nuestros sprites eran animados, cargábamos tiles y otros tipo de recursos gráficos con una facilidad pasmosa. A lo largo de nuestro primer desarrollo cocos2d ha ido creciendo permitiendo la creación de forma sencilla de apps universales compatibles para iphone3G/S, iphone4 y iPad, además existen grandes juegos desarrollados con cocos2d y que han tenido una gran repercusión últimamente; así que a la luz de estos hechos concluimos que nuestro primer juego para iOS estará implementado en Cocos2d… ¿el resultado? pronto lo podréis ver en la AppStore.