Introducción
Última actualización
Última actualización
Apache Cordova es un framework de código abierto para el desarrollo de aplicaciones para móviles. Su principal característica es ser multiplataforma, es decir, con un solo código de aplicación podemos utilizarlo en multitud de plataformas móviles, como Android, iOS o Windows Phone.
Inicialmente Apache Cordova era conocido como PhoneGap, el cual fue desarrollado por Nitobi bajo licencia de software libre. En Octubre de 2011 Adobe anunció oficialmente la adquisición de Nitobi, pasando así PhoneGap al control del gigante del software. Esto generó una gran incertidumbre entre los desarrolladores, pues el framework podía pasar a ser una tecnología propietaria, pero en una genial estrategia, Adobe donó el código de PhoneGap a la fundación Apache, conservando de esta forma la integridad libre de PhoneGap, y dando origen a Apanche Cordova.
En la actualidad ambos proyectos son mantenidos y tienen sitios webs distintos, aunque en la práctica son el mismo producto. Las únicas diferencias que podríamos destacar son que Phonegap incluye algunos servicios o complementos más de Adobe, por lo que Adobe podría decidir cobrar. Además Cordova es la versión base y la que primero publica las actualizaciones. En este libro nos centraremos en Cordova, ya que al ser software libre es la que suelen adoptar otros frameworks de desarrollo de aplicaciones Web para móviles.
El núcleo de las aplicaciones se crea utilizando lenguajes de programación Web, como JavaScript, HTML5, CSS3, y con la ayuda de otros frameworks de desarrollo y de la propia API de Cordova. Esta API nos permite acceder mediante código JavaScript a características nativas del móvil, como por ejemplo: Acelerómetro, cámara, contactos, eventos, geolocalización, redes o almacenamiento.
Posteriormente, y para cada una de las plataformas móviles para las que queramos generar nuestra aplicación, tendremos que incluir este núcleo Web como parte de la aplicación nativa. De esta forma podremos generar una aplicación "nativa" para cada plataforma móvil aprovechando para todas ellas el mismo núcleo de la aplicación.
Las aplicaciones desarrolladas con Apache Cordova se consideran aplicaciones híbridas. Una aplicación es híbrida cuando es una aplicación nativa con una capa intermedia de herramientas que hacen uso de otros lenguajes de programación. Por el contrario se considera nativa cuando ha sido desarrollada íntegramente utilizando la API y lenguaje de programación que proporciona la compañía que vende el producto. Esta técnica de programación tiene varias ventajas: el usuario sentirá que la aplicación es parte del sistema operativo, nos permitirá distribuir la aplicación como una aplicación nativa, y además nos ahorrará muchísimo trabajo.
Puedes encontrar más información de Apache Cordova en su sitio web http://cordova.apache.org/, desde donde podrás descargar la última versión del framework.
El esquema básico de funcionamiento de Cordova es el siguiente:
Construir la aplicación usando estándares Web: HTML, HTML 5, CSS, CSS3, JavaScript o haciendo uso de otros frameworks para el desarrollo de aplicaciones Web.
Combinar la aplicación Web con Cordova, esto nos dará acceso a las características nativas de los dispositivos móviles.
Configurar la aplicación en cada una de las plataformas para las que queramos generar la aplicación nativa.
A continuación se incluye un esquema de este proceso:
Es importante utilizar estándares web para que nuestra aplicación funcione en la mayoría de dispositivos móviles. Para el desarrollo de la aplicación, además de poder utilizar lenguajes de programación web HTML 5, CSS 3 y JavaScript, también soporta perfectamente el uso de frameworks de desarrollo web móvil como: Twitter Bootstrap, jQuery Mobile, Sencha Touch, Dojo, jQTouch, SprountCore, GloveBox, XUI, iScroll, entre otros.
Además, a través de la librería de Cordova se nos brindará el acceso desde la aplicación web a las diferentes características nativas o hardware de los dispositivos móviles, como por ejemplo el acelerómetro, la cámara, brújula, etc.
Con Cordova es posible desarrollar aplicaciones para los siguientes sistemas operativos para móviles:
Android
iOS
Blackberry 10
WP8
Ubuntu
Windows
OS X
Permite el acceso a las características nativas o hardware de todas estas plataformas a través de una API en JavaScript que se comunica con el dispositivo. Las características a las que nos permite acceder son:
Acelerómetro
Estado de la batería
Cámara
Brújula
Estado de la conexión
Contactos
Datos del dispositivo
Eventos
Gestión de archivos
Geolocalización
Navegador
Contenido multimedia
Sistema de notificaciones
Pantalla de bienvenida o Splashscreen
Almacenamiento
Vibrador
Sin embargo no todas las plataformas soportan el acceso a todas las características nativas desde una aplicación de este tipo. Los principales sistemas operativos para móvil actuales (Android, iOS, WP) no presentan apenas problemas (aunque sí algunas particularidades de configuración), pero otros como Tizen o Firefox OS no permiten el acceso completo. En la siguiente dirección se puede consultar una tabla con el soporte para cada plataforma:
https://cordova.apache.org/docs/en/latest/guide/support/index.html