Diseñando aplicaciones multi-plataforma en HTML con PhoneGap
jueves, febrero 9, 2012 at 2:07PM
rmontero in Artículos Android, phonegap multi-plataforma

PhoneGap, framework OpenSource adquirido recientemente por Adobe, nos permite crear aplicaciones en un código estándar HTML 5 capaz de ser ejecutado nativamente en los diferentes sistemas operativos móviles del mercado. PhoneGap cubre el diseño de interfaces de usuario mediante HTML y CSS, a la vez que encapsula las características nativas de los terminales móviles haciéndolas accesibles por JavaScript. Por ejemplo, mediante una única función JavaScript podremos acceder a las cámaras incorporadas en cualquier terminal android, iphone, Windows Phone u otras plataformas. La filosofía de este interesante producto es unificar los desarrollos para los distintos terminales móviles, abstrayendo al desarrollador de la programación nativa específica para cada uno de ellos. La siguiente imagen resume bastante bien esta metodología de trabajo de PhoneGap:

 

 

PhoneGap permite controlar los siguientes elementos de hardware incluidos en la mayoría de dispositivos móviles (smartphone):

API

Descripción

Accelerometer

Lecturas del sensor de movimiento

Camera

Capturar imagines a través de la cámara de fotos.

Compass

Obtener la dirección en la que apunta el dispositivo.

Contacts

Gestión de contactos.

Device

Información específica del dispositivo.

Events

Capturar eventos nativos.

File

Gestor de ficheros.

Geolocation

Servicios de localización.

Media

Control multimedia de video y audio.

Network

Comprobaciones del estado de la conexión a la red.

Notification

Gestión de notificaciones a nivel de sonidos y vibraciones.

Storage

Control de almacenamiento.

 

Esta herramienta resulta especialmente beneficiosa para los siguientes actores:

  A continuación probaremos en pocos pasos este framework, construyendo una aplicación Android para después aprovechar el servicio on-line “PhoneGap Build” que nos brinda Adobe y empaquetar la aplicación para dispositivos iPhone, BlackBerri, Symbia y WebOs.

Para desarrollar con PhoneGap se pueden elegir cualquiera de los entornos de desarrollo de las propias plataformas soportadas. En nuestro caso, como interesados en Android, elegiremos una instalación estándar de Eclipse junto con el plugin ADT y  la SDK. Puede consultar la configuración del entorno recomendada por Android en la siguiente dirección: http://developer.android.com/sdk/eclipse-adt.html.

El siguiente paso será descargamos la última versión de PhoneGap, actualmente la 1.4.1, a través de la siguiente URL: https://github.com/callback/phonegap/zipball/1.4.1. Del archivo descargado, la parte que nos interesa es la que a Android se refiere:

 

 

Dentro de la carpeta Android nos encontramos con los siguientes elementos:

Para importar el proyecto de ejemplo haremos lo siguiente:

Llegados a este punto nuestro eclipse debería de tener un aspecto similar al siguiente:

 

 

Tal y como hemos mencionado anteriormente, si editamos la actividad (PhoneGapExample)  veremos que extiende de la clase DroidGap. Otro aspecto interesante de esta clase, es que hace referencia al fichero HTML donde realmente se encuentra la aplicación diseñada con PhoneGap:

super.loadUrl("file:///android_asset/www/index.html");

Si abrimos el fichero index.html nos encontraremos con un diseño HTML normal y corriente, donde en la parte superior se importan dos javascript:

<script charset="utf-8" src="phonegap-1.4.1.js"></script>

<script charset="utf-8" src="main.js"></script>

Si abrimos el fichero main.js encontraremos las funciones JavaScript que utiliza la aplicación para la demo. Por ejemplo, podemos ver funciones para leer las posiciones GPS, control de sensores, visualización de contactos… Aunque tal vez la mejor forma de entender este código sea consultando las referencias JavaScript de la documentación de PhoneGap: http://docs.phonegap.com.

Al ejecutar el proyecto de ejemplo veremos la siguiente pantalla:

 

 

Una vez que tenemos creada la aplicación, será el momento de empaquetarla y distribuirla en todas las plataformas soportadas. Para ello, usaremos el servicio PhoneGap Build, en el que nos habremos registrado anteriormente. Se trata de un servicio de pago, pero los desarrolladores tendrán una opción gratuita para generar una aplicación:

 

Si nuestro objetivo es que la aplicación sea debidamente empaquetada para las diferentes plataformas, debemos de proporcionar nuestro código fuente al servicio PhoneGap Build. Para ello tenemos dos opciones:

 

 

 

Cuando pulsemos sobre el botón crear, la aplicación comenzará a compilarse, cuando termine este proceso, nuestra aplicación ya estará disponible para descargar e instalar en los diferentes dispositivos:

 

 

 

Tal y como vemos en la imagen anterior, parece que para el iOS necesitamos un fichero de claves que podremos obtener desde el entorno de desarrollo de aplicaciones para este tipo de dispositivos. PhoneGap Build incorpora una serie de herramientas que cualquiera que esté interesado en este tipo de desarrollos le conviene investigar, por ejemplo existe la posibilidad de publicar directamente en los diferentes “Markets” de aplicaciones o una interesante interfaz de  depuración de nuestros programas.

Finalmente, si nos descargamos e instalamos las aplicaciones en sus correspondientes dispositivos, la vista del aplicativo de ejemplo debería ser muy similar en todos ellos:

 

 

 

 

 

Agradecer a Euro-Help Consulting el interés mostrado y la información proporcionada para elaborar este artículo.

 

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.