El mercado de aplicaciones para dispositivos móviles está en continuo crecimiento, y cada vez son más las empresas que solicitan aplicaciones para este tipo de dispositivos. La principal problemática que se encuentran estas empresas es que actualmente hay una fuerte lucha entre las distintas plataformas para dispositivos móviles y para tener presencia en todas ellas la inversión sería muy alta, pues necesitarían un desarrollo por cada una de ellas.
Esta heterogeneidad de plataformas implica un desarrollo múltiple que, aun siendo las aplicaciones sencillas, complica los proyectos, aumentando el riesgo de errores y los costes de desarrollo y mantenimiento.
Como alternativa han aparecido en el mercado varios frameworks que intentan unificar al máximo los desarrollos sobre cualquier plataforma, de tal manera que con una sola implementación (o con unas ligeras modificaciones), consigue crear las aplicaciones nativas para las distintas plataformas móviles. Los dos que consideramos más maduros y con mayor proyección son PhoneGap y Titanium.
PhoneGap está formado por una serie de utilidades que ayudan a implementar y generar aplicaciones para múltiples plataformas a través de HTML5, CSS y JavaScript. Sus principales características son:
- Plataforma para crear aplicaciones móviles con HTML5 y una serie de librerías. JavaScript usando los estándares Web.
- API de alto nivel para operar en los dispositivos de cada plataforma.
- Opensource.
En Alvantia hemos desarrollado varios proyectos con este framework y a partir de esta experiencia hemos identificado sus pros y sus contras. A favor del uso de este framework tenemos entre otros los siguientes puntos:
- Desarrollo con estándares Web (HTML5, CSS y JavaScript).
- Aprovecha toda la versatilidad de JQuery y JSON.
- Fácil desarrollo, no hay prácticamente curva de aprendizaje.
- El diseño (HTML5 y CSS) es totalmente independiente del framework PhoneGap, por lo que existe libertad total para el look&feel y es casi en su totalidad idéntico entre plataformas.
- Genera la aplicación para 9 plataformas distintas (iPhone iOS, Android, WebOS, BlackberryOS, Windows Phone 7 y 8, Windows 8, Symbian y Bada).
- Posibilidad de hacer debug desde un navegador Web.
Algunas de las debilidades de este framework son:
- No todos los dispositivos soportan HTML5, por lo que no se podrá aprovechar toda la potencia que ofrece este lenguaje.
- Algunos problemas con el API: las utilidades no están disponibles para todas las plataformas y no facilita la implementación de aplicaciones complejas.
- La instalación del entorno para Eclipse o XCode no es trivial y se realiza de forma manual.
Titanium en un completo framework de desarrollo basado en JavaScript que dispone de multitud de herramientas para generar una aplicación nativa tanto para Android como para iOS. Ofrece desde una versión gratuita con múltiples servicios hasta tres planes con diferente coste y niveles de soporte. Las principales características del ecosistema Titanium son:
- Titanium Studio, IDe basado en Aptana Studio, a su vez basado en Eclipse.
- Titanium Mobile SDK / Tools, API de alto nivel y herramientas para la generación de código nativo.
- Titanium Marketplace, donde están disponibles cientos de funcionalidades que extienden la plataforma base.
- Titanium Cloud Service, que ofrece almacenamiento, envío de mails, notificaciones push, llamadas a API’s, etc…
- Framework MVC Alloy Open source para el desarrollo de aplicaciones.
Tras haber realizado desarrollos con Titanium podemos comentar que entre sus puntos fuertes se encuentran los siguientes:
- Uso de JavaScript para el desarrollo añadiendo multitud de funcionalidades propias de Titanium.
- Unificación de API para todas las plataformas.
- Entorno de desarrollo familiar (Eclipse).
- Facilidad para desarrollar módulos específicos en código nativo para cada una de las plataformas que se integran dentro del framework.
- Disponibilidad de módulos de terceros en el Marketplace.
En contra del uso de Titanium podemos mencionar que:
- A pesar de estar basado en JavaScript requiere un aprendizaje previo complejo para el uso de los componentes de Titanium.
- La depuración es complicada por las características de generación de código a partir del código Titanium, sobre todo tras la inclusión de Alloy MVC.
- No hay ningún entorno de diseño gráfico de la aplicación, basándose todo en xml.
- El diseño se circunscribe al tema específico de cada plataforma, no siendo inmediata la implementación de diseños alternativos.
- Al ser programación orientada a eventos los errores no suelen ser muy claros, lo que dificulta su identificación y localización.
El uso de PhoneGap es más simple que el de Titanium, que muestra una curva de aprendizaje mayor, mientras que Titanium puede desarrollar aplicaciones con una mayor complejidad que las desarrolladas por PhoneGap. Independientemente de ello, creemos que los dos frameworks son opciones muy interesantes para el desarrollo de aplicaciones móviles.