El mundo de las aplicaciones de tecnología de información se ha vuelto costoso. Pareciera que cualquier idea de negocio que no venga acompañada de un desarrollo tanto en móvil como en Web, está destinado al fracaso. Esto ha incrementado significativamente los costos de desarrollo del producto a entregar, pues por lo general se necesita un equipo para trabajar en web –que a su vez pudiesen ser dos equipos: uno para el frontend y otro para el backend– y otro para trabajar en los aspectos móviles. Pero esto no termina aquí, el desarrollo móvil se encuentra terriblemente desintegrado y para obtener resultados en las principales plataformas comerciales de auge: ios, android y windows, se requieren distintos tipos de perfiles cualificados para desarrollar el producto. Es muy raro encontrar un perfil de desarrollador que conozca sobre todas las plataformas y todos los aspectos, pues son mundos muy diferentes y que tienen una curva de aprendizaje bastante elevada. Aquí es donde llega PhoneGap/Cordova para aportar valor.
PhoneGap es un framework open source que permite el desarrollo multi-plataforma de aplicaciones móviles mediante HTML5, CSS, y JAVASCRIPT. El resultado es una aplicación nativa en IOS, ANDROID u otro dispositivo soportado por el marco de trabajo, con un esfuerzo relativamente menor y por tanto menor coste[1].
Así como en el pasado con las aplicaciones de escritorio se encontró la necesidad de buscar alguna forma de desarrollar multiplataforma con un mismo lenguaje, por ejemplo con la JVM(Java Virtual Machine), PhoneGap realiza una propuesta de valor en este sentido, y así mediante la conversión del API en JavaScript se obtienen aplicaciones nativas bastante potentes y con capacidad para trabajar con los componentes de: Acelerómetro, Compás, Cámara, Contactos, Archivos, Geolocalización, Multimedia, Almacenamiento, Notificaciones y un extenso API planeado que está en continuo desarrollo.
Recientemente el proyecto ha sido absorbido por Apache Foundation y bautizado con el nombre de Cordova. Este hecho ha aumentado el valor de la comunidad que día tras día se encuentra trabajando. La documentación es bastante aceptable, y sigue creciendo paulatinamente[2].
Posee infinidad de herramientas y complementos realizados por la comunidad y por terceros que nos permiten realizar cosas como conectar con el API de Twitter y Facebook en dos pasos, así como lidiar con la interfaz gráfica, con frameworks CSS como Chocolatechip UI que nos exponen la aplicación con el Look and Feel tal cual como cualquier aplicación de Apple o Google.
En cuanto al rendimiento, como es de esperarse no llega al nivel de una aplicación nativa, pues el HTML, CSS y Javascript debe ser leido e interpretado por el engine del navegador cada vez que arranca, sin embargo la diferencia no es realmente apreciable, sobre todo si se aplica una estrategia orientada a servicios y se usa la aplicación móvil solo con fines de presentación.
En ese sentido, mediante el uso de SaaS (Software as a Service) se puede partir de una arquitectura que ofrezca servicios (en REST por ejemplo) y que sean consumidos desde el dispositivo móvil usando PhoneGap/Cordova.
He desarrollado un sencillo ejemplo para probar el framework usando SaaS y PhoneGap/Cordova que se puede encontrar en mi repositorio de GitHub aquí. En este ejemplo, que pretendo explicar en los próximos artículos, se desarrolló un sistema de autenticación y un pequeño CRUD para presentar productos de un catálogo de ropa. Mediante Ruby On Rails se construye la lógica de negocio y se expone mediante servicios web REST-JSON para ser luego consumidos mediante la aplicación móvil.
En definitiva PhoneGap/Cordova es una opción para tener en cuenta a la hora de desarrollar aplicaciones móviles sin alto costo y con resultados bastante buenos; no en vano proyectos como Las Olimpiadas de BBC y Wikipedia han sido desarrollados bajo este marco, y es que tal como dicen Fox y Patterson en [3] : hoy en día para desarrollar y tener éxito en el negocio TI, solo hace falta una buena idea y una tarjeta de crédito con menos de cien euros.
REFERENCIAS
[1] Rohit Ghatol y Yogesh Patel. Beginning PhoneGap. Wrox
[2] Tomas Myer. Beginning PhoneGap. Apress
[3] David Patterson y Armando Fox. Engineering Long-Lasting Software