Appcelerator, PhoneGap, Unity 3D, Cocos-2dx, etc un nuevo camino se abre ante nuestros pies y disponemos de muchos vehículos para recorrerlo… Elige cual es el tuyo.

Todos tenemos claro, que los dispositivos móviles cada día adelantan un pasito frente a otros tipos de dispositivos, y si eres desarrollador, sabes que tarde o temprano tendrás que aprender de qué va esto, ya sea por gusto, por obligación o por las dos.

Cuando nos encontramos ante esta situación se nos presentan los siguientes dilemas: ¿desarrollo directamente sobre la SDK nativa? , ¿qué sistema usar en este caso (Android, iOS,etc)?. Recientemente y cada vez con más fuerzas se están implantando unas soluciones para estos problemas que cubren perfectamente las necesidades prácticamente de cualquier aplicación y en algunos casos las mejoran y es que ¿por qué debemos conformarnos y limitarnos únicamente a desarrollar para un tipo de sistema?.

Sí , está claro que es posible desarrollar nativamente nuestra aplicación para todos los sistemas, pero el costo en recursos y tiempo no compensa cuando existen frameworks en los que con un solo click podremos tener nuestra aplicación para cualquier sistema y desarrollando únicamente un proyecto, por lo que prácticamente los recursos y el tiempo necesarios para ello se ve disminuido muchísimo.

Las soluciones para crear apps multiplataforma que disponemos hoy en dia valen para el 95% de las necesidades que pueda tener cualquier aplicación, esta claro que existen casos específicos en los que necesitaremos tirar de código nativo en una aplicación ya sea por eficiencia, por elementos nativos, etc. Pero en la mayoría de los casos no es necesario, y es una pérdida de tiempo.

Una vez que tenemos claro que ésta es la mejor opción para desarrollar nuestra aplicación, nos damos cuenta de que no solo existen una o dos plataformas (bendito dilema) que nos ofrezcan una solución buena para desarrollar nuestra app.

Por supuesto, antes de todo esto debemos tener una idea clara de lo que vamos a desarrollar y en base a nuestra idea tendremos una alternativa o varias que nos permitan y ayuden a poner en pie nuestra aplicación. Desde mi punto de vista se podría dividir en dos grandes bloques teniendo en cuenta que para desarrollo de aplicaciones, las dos plataformas más importantes son PhoneGap y Appcelerator y para desarrollo de juegos mencionaré Unity 3d aunque existen bastantes más como Unreal Engine 4, Cocos 2d-x, etc.

Vamos desglosando cada una de ellas:

 

appcelerator

Appcelerator

Cuenta con un IDE llamado Titanium que es una modificación del conocido Eclipse, utiliza las SDK de los distintos sistemas para generar código nativo, por lo que esto es una gran ventaja sobre su competidor más directo (PhoneGap), desde el ambiente de desarrollo de Titanium se crea la interfaz gráfica y se programa el comportamiento en javascript, y en base a esto el motor de Titanium genera un proyecto nativo por lo que siempre tenemos a nuestra disposición el aspecto y el uso de los controles nativos.

Otra de las grandes ventajas de Titanium se debe a que es gratuito, tanto para uso personal como comercial y además es código libre.

Otros puntos fuertes:

  • Tienen una librería de assets (recursos) espectacular, con cientos de plugins y recursos listos para usar, prácticamente cualquier cosa que desees hacer, ya estará hecha y podrás usarla en tu beneficio.
  • Para los más noveles y a los que les gusta trabajar sobre un proyecto base, su Dashboard te da la posibilidad de descargar muchos ejemplos además de muchísimos videos y documentación
  • Une las facilidades de el MarketPlace de eclipse con su propio gestor de descargas de plugins y de actualizaciones.
  • Ofrece una gran facilidad de descarga y de configuración de los SDK de todas las plataformas
  • Cuenta con un framework que te facilita bastante las cosas llamado Alloy.

Hablemos de Alloy

Es un framework MVC libre y Open source que hace que programar una app sea tan cómodo como programar una web. Utiliza etiquetas para el apartado visual y gracias a ser MVC tiene muy bien diferenciado todos los elementos esto hace que se faciliten mucho las cosas.

Tiene gran variedad de widgets y themes disponibles.

App’s creadas con Appcelerator:

Existen muchas app’s famosas desarrolladas con esta plataforma como Citi Network Direct, Ebay, Gamestop o VMWare.

http://www.appcelerator.com/customers/app-showcase/

 

Link API reference: http://docs.appcelerator.com/titanium/latest/

Repositorio oficial de Alloy en GitHub: https://github.com/appcelerator/alloy

 

PhoneGap

 

Tiene muchísimas diferencia con Appcelerator, como por ejemplo, no cuenta con un IDE de desarrollo sino que todo se desarrolla en un navegador web nativo. Otra diferencia con Appcelerator es que usa HTML5, CSS3 y JavaScript, así como frameworks de interfaz de usuario (front-end), como Jquery Mobile, Sencha, etc…y no se convierte en código nativo cuando compilas la aplicación por lo que nace una aplicación híbrida, no son realmente aplicaciones nativas al dispositivo (ya que el renderizado se realiza mediante vistas web y no con interfaces gráficas específicas de cada sistema), pero no se trata tampoco de aplicaciones web (teniendo en cuenta que son aplicaciones que son empaquetadas para poder ser desplegadas en el dispositivo incluso trabajando con el API del sistema nativo). Si es cierto que, existen API’s que permiten tener acceso a elementos como el acelerómetro, la cámara, los contactos en el dispositivo, la red, el almacenamiento, las notificaciones, etc

phonegap

Una de las ventajas de PhoneGap es que permite la ejecución de la aplicación en un navegador web con lo que amplía su catálogo de elementos donde se puede ejecutar, y a la hora de desarrollar, se puede probar sin necesidad de usar un emulador, probando directamente la aplicación en el navegador web.

 

App’s creadas con PhoneGap:

BBC Olympics

http://phonegap.com/app/bbc-olympics/

BrowserQuest

http://phonegap.com/app/browserquest/

Appcelerator VS PhoneGap

Appcelerator PhoneGap
UI La UI no es escalable. UI escalable.
Interfaz de usuario Usa Javascript como interfaz de usuario que se asigna al código nativo. No tiene.
Código nativo Compila a código nativo. Empaqueta la App en su propio framework.
Acceso al hardware Lo permite. Lo permite.
Licencia Software propietario (permite desarrollar apps Open Source). Software Libre (GPL) con respaldo de Adobe.

¿Cuándo debemos usar cada una de ellas?

Queremos reutilizar la misma base de código HTML 5 a través de móvil, Tablet, escritorio y TV.

Para esta opción la mejor alternativa es usar PhoneGap, debido que Appcelerator es para escribir una aplicación nativa con código Javascript.

 

Queremos estabilidad.

Para esto sin duda usaremos Appcelerator. Te proporciona una aplicación totalmente nativa usando el SDK de cada plataforma.

Queremos facilidad al desarrollar.

La depuración de las aplicaciones en Appcelerator es bastante fácil. Appcelerator es una parte de un SDK, que es un recinto de seguridad basado en Eclipse. Por ésto, la forma fácil para depurar aplicaciones viene dado gracias a JSON.string, que imprime el contenido de un objeto. También hay herramientas de depuración basados en web tales como cloudbug.com que ofrece una consola de depuración muy útil en algunos casos.

Las apps desarrolladas con Phonegap, se pueden poner a prueba en muchos aspectos, ya que se basan en HTML. Algunos de éstos no requieren el acceso a la API del dispositivo, y pueden ser testeados con un web-kit basado en navegadores.

Queremos un lenguaje determinado.

Si te gusta Javascript, Appcelerator es tu opción, si prefieres el conjunto HTML5, CSS3 y JavaScript tu opción es PhoneGap.

Conclusión.

Appcelerator es un gran framework que te permite desarrollar una aplicación nativa para las plataformas más importantes de una forma sencilla y muy estable, pero requiere de amplios conocimientos de Javascript.

Phonegap es una librería ligera de código JavaScript, escrito para acceder al hardware del dispositivo y las API de software.

Unity 3D

Y como el negocio de los juegos para dispositivos móviles es algo que nunca debemos obviar debido a que mueve muchísimo dinero, vamos a hablar también de Unity 3D que se podría considerar el más importante y extendido de entre todos los de su especie.

Estamos ante un framework con un IDE de desarrollo de los más completos que he visto, desde la edición visual del videojuego con un entorno para editar animaciones, posiciones, sprites y demás de una forma muy fácil y dinámica hasta la edición de código con MonoDevelop también desde una forma muy intuitiva.

unity

Unity te da la posibilidad de usar código Javascript o C# para crear nuestra aplicación que finalmente se verá convertido a código nativo al compilar pudiendo configurar para ello muchas opciones entre las cuales por ejemplo podemos elegir la versión de Android con la que queremos trabajar, crear o usar una keystore, etc.

Podemos compilar nuestro código a distintas plataformas entre las que se encuentra Android, iOS, OSX, Windows, Windows Phone, PS3, Xbox 360… claro que todas no se encuentran disponibles en la versión Free.

Diferencias entre licencias:

Lógicamente existen varias diferencias entre la licencia free con las demás pero se puede desarrollar prácticamente cualquier cosa para Android, Windows Phone, Windows, BlackBerry e iOS que son las plataformas más importantes hoy en día, si queremos desarrollar para PS3 o Xbox 360 necesitamos una licencia.

Además tiene características adicionales, tales como render a textura, determinación de cara oculta, iluminación global y efectos de post-procesamiento. La versión gratuita, por otro lado, muestra una pantalla de bienvenida (en juegos independientes) y una marca de agua (en los juegos web) que no se puede personalizar o desactivar.

Podemos encontrar un comparador de licencias en este link: https://store.unity3d.com/es/products

En resumidas cuentas podemos destacar de Unity 3d las siguientes características:

  • Tienda assets.
  • Repositorio muy amplio de documentación.
  • Grandes posibilidades para desarrollar 2D y 3D.
  • Facilidad de compilación de proyectos.
  • Editor de código MonoDevelop
 
monodevelop
 

En el Grupo Soltel llevamos desarrollando aplicaciones móviles desde 2007, tanto para usuarios finales como aplicaciones empresariales.