Introducción

PhoneGap 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.

Logo PhoneGap

Inicialmente PhoneGap fue desarrollado por Nitobi bajo licencia de software libre, pero 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ó PhoneGap a la fundación Apache, conservando de esta forma la integridad libre de PhoneGap.

En la actualidad, el proyecto en el sitio web de la fundación Apache esta nombrado como: "Apache Cordova", pero PhoneGap sigue siendo una especie de marca comercial, por lo que aún se sigue usando ese nombre para identificar al popular framework.

El núcleo de las aplicaciones PhoneGap 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 PhoneGap. 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 PhoneGap 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.

App híbrida

Puedes encontrar más información de PhoneGap en la dirección http://phonegap.com/, donde podrás descargar la última versión del framework.

Cómo trabaja PhoneGap

El esquema básico de funcionamiento de PhoneGap 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 PhoneGap, 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:

Esquema funcionamiento

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 PhoneGap 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.

Esquema funcionamiento

Soporte

Con PhoneGap es posible desarrollar aplicaciones para los siguientes sistemas operativos para móviles:

  • Android

  • iOS

  • Windows Phone

  • BlackBerry OS

  • Amazon Fire OS

  • Firefox OS

  • Ubuntu

  • Tizen

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:

http://docs.phonegap.com/en/edge/guide_support_index.md.html#Platform%20Support