lunes, 22 de junio de 2015

Cordova, apk Android

En el post de hoy explico los pasos necesarios para desarrollar una aplicación HTML/Javascript que se instale como una Apk en un dispositivo Android. Como sabéis para crear una aplicación nativa en android es necesario desarrollarla en java. Desde ya hace un tiempo existen frameworks javascript (open source) que permiten desarrollar una aplicación HTML y convertirla en apk. Uno de ellos, quizás el más extendido es Cordova / Phonegap que soporta más plataformas a parte de android entre ellas Windows Phone o IOS.

No necesitas un IDE para realizar la aplicación, aunque podrías usarlo. Comentar que Visual Studio (a partir de 2013) incorpora herramientas para trabajar con Cordova que te pueden facilitar bastante las cosas (punto para MS!).

Por otro lado, para desarrollar la aplicación HTML te recomiendo usar algún framework javascript como Angular aunque no es en absoluto un requisito obligatorio para Cordova... es simplemente por el hecho que si trabajas con Angular te obligarás a implementar algún tipo de patrón y seguir un orden de proyecto similar a lo que harías con C# y MVC (por poner un ejemplo). Otro punto positivo por el que recomiendo usar Angular en este ámbito es que trabaja a la perfección con bootstrap y hay infinidad de modulos open source de la comunidad que han creado componentes cliente listos para incluir en tu proyecto y usar. Llegado este punto si te planteas empezar con cordova te recomiendo echar un ojo a Ionic que integra angular, bootstrap y cordova... y ya existen templates de proyecto para Visual Studio.

Sea cual sea tu decisión, ahora te explicaré los requisitos necesarios para poder generar una apk a partir de tu aplicación HTML (entorno windows).

Necesitarás descargar e instalar cordova, para ello la opción más sencilla es usar node/npm y Git. Sigue los pasos de la documentación oficial, al finalizar la instalación de Cordova CLI si abres una línea de comando te debería reconocer el comando "cordova". En principio si lo instalas siguiendo la documentación oficial automáticamente se añade toda la configuración de variables de entorno. Cordova CLI es una utilidad que te permite crear tu aplicación cliente, añadir plataformas soportadas, gestionar los plugins de cordova, generar la aplicación, lanzarla contra un emulador, etc...

Una vez tenemos cordova CLI configurado instalaremos las herramientas necesarias para poder añadir la plataforma android a nuestros proyectos Cordova. Necesitaremos instalar la versión correspondiente del sdk de android y el jre de java (si descargas la última versión debería funcionarte). Para asegurarnos que lo hemos hecho bien al abrir una linea de comando debería reconocernos el comando java y android. Actualmente cordova va por la versión 5.0.x, en versiones anteriores era necesario instalar Ant ya que interviene en el proceso de build de la Apk, en la versión 5.0.0 no estoy seguro... yo lo he instalado por inercia.

El siguiente paso es crearnos un proyecto con cordova. Para ello hemos de situarnos por linea de comando en el directorio donde queremos generar la aplicación. Yo trabajo sin IDE tiro de CLI, imagino que Visual Studio se encarga de lanzar comandos por debajo pero en todo caso uno u otro tendrá que crear un nuevo proyecto en cordova con el siguiente comando.
cordova create MyProject com.example.mmyproject MyProject
El comando anterior ha creado una aplicación Cordova asociada al directorio donde tenemos el código HTML, dentro del directorio veremos la carpeta www donde ubicaremos nuestra aplicación HTML/js.



El siguiente paso es añadir android como platform con el siguiente comando.
cordova platform add android
Una vez creada la plataforma ya podríamos lanzar el siguiente comando para generar la apk. Esto genera una aplicación sin firmar en la ruta platforms/android/build/output.
cordova build android
Un paso importante para instalar la aplicación en un dispositivo android es firmar la aplicación. Para ello tendremos que ir a la carpeta donde tenemos java instalado (generalmente archivos de programa\java...) y generar un certificado con la utilidad keytool.exe.

Una vez generado el archivo .keystore recomiendo copiarlo en la ruta donde hemos creado el proyecto cordova. El encargado de firmar la aplicación será Gradle en cordova 5.0.0... para decirle a Gradle que tenemos un certificado y queremos firmar la aplicación cuando le pasemos el parámetro -release (al comando cordova build android) necesitaremos crearnos un archivo SigningDefault.properties en la ruta donde tenemos la plataforma de android del proyecto.

Si volvemos a generar la aplicación con el comando cordova build android --release automáticamente la apk quedará firmada y ya se podría instalar en un dispositivo android siempre y cuando habilites en el teléfono que admita apk que no han sido descargadas del market oficial (aplicaciones con origen desconocido).

Hasta aquí el post de hoy, si tienes conocimientos de HTML y javascript pero no conocías cordova ahora ya puedes hacer una app y montarte en el dolar jajajja. Ánimo y suerte! Como siempre recordar que cualquier duda, valoración, comentario o lo que os apetezca decir siempre es bienvenido en areaTIC. Que vaya bien!