BBVA Open4u - Apache Cordova y PhoneGap: desarrolla aplicaciones para todos los entornos

Apache Cordova y PhoneGap: desarrolla aplicaciones para todos los entornos

Distintas plataformas, varios sistemas operativos, diferentes necesidades. Ante esta diversidad, recurrir a herramientas como Apache Cordova o PhoneGap nos permite desarrollar aplicaciones.
BBVAOpen4U
|
02 Nov. 2015

El desarrollo de aplicaciones móviles se ha convertido en una obligación para empresas y negocios. Los usuarios (y los clientes) se encuentran en los dispositivos móviles. Pero la enorme variedad de entornos es un reto real para la gestión de recursos. Distintas plataformas, varios sistemas operativos, diferentes necesidades. Hoy en día existen algunas soluciones que permiten unificar los esfuerzos en diseño y desarrollo de aplicaciones.

Cuando un desarrollador se plantea la creación de una aplicación móvil, lo primero que debe preguntar es para qué plataforma. ¿Es una aplicación para iOS, para Android, para Windows Phone o para otros sistemas operativos como Blackberry, Tizen o Firefox OS? Para iOS necesitamos un programador en Objective-C o Swift que use el entorno de desarrollo integrado Xcode; para Android se programa en Java y como IDE se puede usar Eclipse;  y para Windows Phone se desarrolla en C# o HTML5 en Visual Studio (Microsoft).

Ante tanta diversidad de sistemas operativos, hay otras dos alternativas para no tener que usar lenguajes e IDEs distintos por cada aplicación:

- Utilizar un marco de desarrollo como Xamarin para programar en lenguaje C# el código que compartirán entre todas las aplicaciones y desarrollar por separado la interfaz de usuario para iOS, Android y Windows Phone. En Xamarin creen que C# es la mejor sintaxis para el desarrollo de apps móviles, por encima de Objective-C, Swift o Java.

- Recurrir a herramientas como Apache Cordova o PhoneGap, que permiten desarrollar aplicaciones en HTML, CSS y JavaScript. 

Lo que aporta Apache Cordova

Apache Cordova es una marco de desarrollo de código abierto para programar aplicaciones móviles multiplataforma en los tres lenguajes estándar de creación de proyectos web: HTML5, CSS3 y JavaScript. Por tanto no es necesario utilizar lenguajes o soluciones nativas para cada plataforma. ¿Cómo? Usa APIs estándar para acceder a componentes y funciones propias de cada dispositivo.

1. Casos de uso de Apache Cordova:

- Hacer una única aplicación que pueda subirse en todas las tiendas de aplicaciones posibles: por ejemplo la App Store o la Google Play.

- La posibilidad de que un desarrollador quiera codificar una interfaz con componentes nativos por dispositivo y WebView, el navegador integrado que Android proporciona a los programadores para sus apps.

2. Los componentes de desarrollo en Apache Cordova:

- Todas las aplicaciones diseñadas en Apache Cordova se fundamentan en un archivo de configuración global config.xml. Este archivo XML se ajusta a las especificaciones estándar de Empaquetado de Aplicaciones Web (widgets) de W3C, independientemente del tipo de plataforma. Para los proyectos creados con la CLI de Cordova (la interfaz de línea de comandos), este archivo XML se encuentra en la ruta app/config.xml.

- Las aplicaciones en Apache Cordova se implementan como una página web, dentro de un hosting local de prueba en el archivo index.html. Y la app se ejecuta en un WebView dentro de la estructura nativa de la propia aplicación. Este navegador sirve la app con todas las características y funcionalidades que lleva la interfaz de usuario.

- Con Apache Cordova se pueden añadir plugins propios o de terceros para aumentar las funcionalidades de la aplicación. Existe un registro de plugins de terceros en este listado y, en el caso de que se prefiera hacer un desarrollo propio, siempre debe programarse de acuerdo a las especificaciones de esta Guía de Desarrollo de Plugins en Cordova

3. Cómo comenzar a trabajar:

- Instalar Apache Cordova: la línea de comandos de Cordova corre en Node.js, por lo que será necesario tener previamente instalado este entorno de ejecución multiplataforma por el lado del servidor. Se le pueden añadir todo tipo de dependencias que se necesiten para el desarrollo de la aplicación, aquí hay un tutorial específico para ello. El comando de instalación de Apache Cordova: npm install -g cordova

- Crear un proyecto nuevo utilizando la línea de comandos: escoger dentro del directorio dónde se quiere empezar el proyecto y utilizar el comando cordova create <path>.

- Añadir la plataforma para la que se desea desarrollar la app: se usa la línea de comandos cordova platform add <platform name>. Estos son los distintos SDKs (kits de desarrollo de aplicaciones): Android SDK, iOS SDK, Windows Phone SDK, Amazon Fire OS SDK y BlackBerry SDK.

Lanzar la aplicación para la plataforma ya instalada en Apache Cordova: utilizar el comando cordova run <platform name>.

Lo que aporta PhoneGap

Lo primero que habría que decir es que PhoneGap y Apache Cordova son, desde el aspecto técnico, la misma herramienta. No existen grandes diferencias entre la una y la otra: son soluciones de código abierto para el desarrollo de aplicaciones multiplataforma en HTML, CSS y JavaScript, sin necesidad de usar lenguajes y marcos de desarrollo distintos para cada OS.

La empresa que creó PhoneGap, Nitobi, cedió en 2011 el código fuente de la herramienta a la Fundación Apache, lo que dio origen al proyecto Apache Cordova a partir de 2012. La compra de Nitobi por Adobe en octubre de 2011 hace que esta solución mantenga el nombre de PhoneGap, en código abierto pero con la posibilidad de enriquecerla con funcionalidades añadidas. Tenemos por tanto dos herramienta iguales, con dos nombres distintos.

¿Existe alguna diferencia interesante entre ambas? La verdad es que sí. Adobe permite la integración de PhoneGap con sus servicios de compilación (Adobe PhoneGap Build), lo que ahorra el trabajo de descargar e instalar los SDKs de cada uno de los entornos como sucede con Apache Cordova. No es necesario porque la compilación la realiza la herramienta. Es una ventaja.

PhoneGap permite el desarrollo de aplicaciones con APIs estándar que dan acceso a todas las funcionalidades de la mayoría de dispositivos. En esta tabla se puede ver cómo trabaja esta herramientas con los distintos terminales.

1. Cómo empezar a trabajar con PhoneGap

Instalar PhoneGap: puedes implementarla en tu escritorio tanto para Mac OS X como Windows. La interfaz de la app se crea con una sencilla función de arrastrar y soltar, sin instalar la CLI de PhoneGap.

Instalar PhoneGap Developer Appesta aplicación instalada en el móvil facilita a los programadores realizar pruebas de testeo con el producto que están desarrollando. Proporciona de forma automática el acceso a las APIs básicas de PhoneGap para trabajar con las funciones nativas de cada dispositivo sin instalar SDKs, plugins o compilar nada localmente. Permite probar desarrollos fácilmente.

Crear la aplicación se abre un nuevo proyecto (normalmente se crea un proyecto Hello World por defecto) y se escoge la ruta en local donde irá alojada la futura aplicación. También es posible crear aplicaciones con PhoneGap con una mezcla de componentes nativos tanto para productos en iOS y Android y el uso de WebView.  

Síguenos en @BBVAAPIMarket