viernes, 3 de octubre de 2014

PRIMEROS PASOS CON AEROGEAR UNIFIED PUSH SERVER

Aerogear es un conjunto de librerías que simplifican y unifican el desarrollo de aplicaciones para dispositivos móviles en diferentes plataformas: Web, iOS, Android y aplicaciones sin código nativo (Cordova). Una de las cosas que proporciona Aerogear es soporte para notificaciones push en Google Cloud Messaging, Apple APN y Mozilla Simple Push mediante Aerogear Unified Push Server. En el siguiente tutorial vamos a desarrollar un ejemplo en el que montaremos un servidor en OpenShift Online para enviar notificaciones a través de Google CloudMessaging, e implementaremos una aplicación en Android que recibirá estas notificaciones. Está basado en este tutorial, con detalle de las secciones que no están explicadas.  

1. INSTALACIÓN DEL SERVIDOR
El servidor de Aerogear a través del cual enviaremos las notificaciones estará en OpenShift Online. OpenShift es la PaaS de Red Hat, en la que podemos crear una cuenta gratuita que nos permite desplegar hasta tres aplicaciones. El primer paso es crear una cuenta en OpenShift Online. Para ello sólo es necesario introducir una dirección de email y un password. Una vez en nuestra cuenta, podemos crear una aplicación. Al crear una aplicación, aparece el catálogo de aplicaciones o cartridges disponibles, en el que seleccionaremos AeroGear Push 0.X.


 
En el formulario que aparece, debemos introducir un valor en el campo Public URL, que será la URL de acceso a nuestro Push Server. En este ejemplo vamos a utilizar el nombre aerogear. El resto de las opciones las dejamos por defecto y creamos la aplicación. Al terminar el proceso, aparece una pantalla con los datos de acceso al servidor que acabamos de crear.



El siguiente paso es ir a la página principal de nuestra aplicación, haciendo clic en Continue to the application overview page. En esta página, podemos ver las tecnologías que estamos utilizando, Aerogear y una base de datos MySQL. En el caso de que quedamos administrar la base de datos MySQL, podemos añadir phpMyAdmin a nuestra aplicación. Haciendo clic en el nombre de la aplicación, nos redirige a nuestro servidor Aerogear.



En esta pantalla debemos introducir las credenciales por defecto que se han mostrado anteriormente, y el sistema nos solicitará que cambiemos el password para activar la aplicación. Las credenciales por defecto son admin/123. Una vez actualizado el password, podemos ver la página principal de nuestro servidor.


  

2. CONFIGURACIÓN DE CUENTA DE GOOGLE
Para poder utilizar Google Cloud Messaging, necesitamos registrarnos como desarrollador de Google. Para ello vamos a necesitar tener una cuenta de Google. Los pasos a seguir son los siguientes:
  1. Acceder a Google Cloud Console y crear un proyecto nuevo.
  2. Apuntar el project number que aparece. Esto nos servirá después para configurar el Sender ID.
  3. Activar las Android APIs, navegando a APIs & auth -> APIs y activando el elemento Google Cloud Messaging for Android.
  4. Ir a APIs & auth -> Credentials y hacer clic en CREATE NEW KEY y luego Server Key. En la siguiente pantalla simplemente seleccionamos Create.
Estos pasos están explicados con todo detalle en este enlace.  

3. CONFIGURACIÓN DEL SERVIDOR
El siguiente paso es configurar el servidor con los datos de la aplicación que hemos creado en Google.
  1. En la sección Applications, creamos una nueva aplicación haciendo clic en Create Application. En este ejemplo, le damos el nombre demo y una descripción.
  2. Una vez creada la aplicación, hacemos clic en su nombre y creamos un nuevo Variant haciendo clic en Add Variant. Para rellenar el formulario, debemos introducir el Client ID y el Project Number que hemos creado en Google.
Este procedimiento está detallado en este enlace.  

4. CONFIGURACIÓN DEL ENTORNO DE DESARROLLO
En este ejemplo vamos a utilizar como entorno de desarrollo JBoss Developer Studio, que es la plataforma proporcionada por Red Hat para trabajar con todo el portfolio de productos de JBoss Middleware. Está basado en Eclipse e incluye todos los plugins de JBoss Tools. JBoss Developer Studio se puede descargar de forma gratuita desde JBoss Developer. En el ejemplo se ha utilizado la versión 7.1.1.

1. Descarga de Android SDK
La SDK de Android se puede descargar desde aquí. Una vez finalizada la descarga, hay que configurar qué modulos y qué versiones de la API se quiere instalar. Para ello ejecutarmos el script android que se encuentra en el directorio tools de la SDK.



Hay que instalar lo siguiente:
De la sección Tools:
  • Android SDK Tools
  • Android SDK Platform-tools
  • Android SDK Build-tools
De las APIs que queramos (yo he utilizado L):
  •  SDK Platform
  • ARM EABI v7 System Image
  • Intel x86 Atom System Image
De la sección Extras:
  • Android Support Repository
  • Android Support Library
  • Google Play Services (este último nos sirve para utilizar Google Cloud Messaging)
 2. Configuración del plugin ADT para JBoss Developer Studio/Eclipse
Para instalar el plugin necesario para aplicaciones Android, sólo hay que seguir las instrucciones de este enlace.
Para impacientes, el repositorio es https://dl-ssl.google.com/android/eclipse/ y hay que configurar la ruta del SDK descargado previamente.

3. Creación de proyecto Google Play Services
Para poder utilizar la librería Google Play Services, que nos permite acceder a la Cloud de Google, debemos importar el proyecto en Eclipse. Para ello, hay que copiar en el directorio en el que estemos trabajando el proyecto que se encuentra en <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib. Es importante utilizar una copia y no el proyecto original que hemos descargado. Para importar el proyecto en nuestro workspace seleccionamos File -> Import -> Android -> Existing Android Code into Workspace.
Este proyecto librería es necesario para poder utilizar las librerías de aerogear-android.

4. Creación de proyecto Aerogear Android
El siguiente paso es hacer un proceso similar pero con las librerías de Aerogear. Para descargar el código de Aerogear y sus dependencias, ejecutamos los siguientes comandos:
git clone https://github.com/aerogear/aerogear-android
cd aerogear-android
git checkout tags/1.4.0
mvn dependency:copy
Después debemos añadir la librería de Google Play como dependencia de este proyecto. Para ello podemos modificar el fichero project.properties añadiendo la siguiente línea:
android.library.reference.1=../google-play-services_lib O lo podemos hacer a través de las herramientas de Eclipse como se explica aquí.
También tenemos que marcar este proyecto como librería, añadiendo la siguiente línea en fichero project.properties:
android.library=true

CREACIÓN Y PRUEBA DE LA APLICACIÓN
La aplicación cliente la creamos a partir de este tutorial, recordando añadir el proyecto de Aerogear como dependencia, de la misma forma que lo hemos hecho en el paso anterior con las librerías de Google. El proceso de prueba de la aplicación está documentado aquí





REFERENCIAS
Saga Blog
Aerogear Unified Push Server Tutorial
Android Developers

BIENVENIDO

Nace JBoss Iberia, un blog dedicado a tecnología de Red Hat JBoss, en la que publicaremos novedades y tutoriales, todo en castellano.