Hacer Apps para Android con Apache Cordova en Linux

Ignacio Buioli
- 15/06/2017

Con la llegada de las tecnologías móviles los programadores comenzamos a adaptarnos a desarrollar programas que responden a la idea de "App", tanto para escritorio como para web. Es curioso como la existencia de determinadas tecnologías comienza a influir en las posibilidades que ofrecen ciertos frameworks. Es el caso de Apache Cordova, un framework que permite realizar Apps compatibles con cualquier dispositivo siendo estas programadas unicamente con HTML, CSS y JavaScript. En esa sopa de posibilidades destaca, como no podría ser de otra forma, el desarrollo de Aplicaciones Móviles para Android. Muchos programadores que manejan dichas herramientas se sienten rápidamente atraídos a la presente oportunidad de desarrollo.

Sin embargo, no todo es oro lo que reluce. Para empezar debemos aclarar la manera en la cual Apache Cordova consigue que un sitio web se transforme en una App para Android. La respuesta es un objecto que ofrece la propia plataforma móvil, conocida como WebView. Se trata tan solo de una "caja" donde se visualiza una web, ya sea local o desde internet, y pese a dicha sencillez permite un sin fin de posibilidades con los frameworks actuales de JavaScript. En la historia de Android, el WebView ha tenido un desarrollo un tanto vertiginoso y epiléptico, ya que al principio no fue un core de Chrome, y ya cuando se empezaba a utilizar uno se trataba de una versión estable elegida por el equipo de desarrollo, imposibilitada de ser actualizada. Antes de la versión 4.4 de Android, el WebView utilizaba su propio motor (al parecer el mismo que el navegador por defecto), la versión 4.4 usa un WebView Chrome 30, el 4.4.3 un WebView Chrome 33, y finalmente el Android 5 usa un WebView Chrome 37 que se actualiza como una aplicación independiente a la versión más estable de Chrome. Este dato no es menor para el desarrollador, ya que son versiones donde se producen muchas adiciones de CSS3, y tampoco puede uno desarrollar Apps para la versión más nueva de Android porque el mercado será reducido.

Está claro, si queremos desarrollar una App de Android, necesitamos instalar el SDK de Android. Las siguientes instrucciones son para Linux, se supone que también funcionan en OSX, para otros sistemas operativos consultar la web oficial. Para empezar necesitaremos instalar Java Developement Kit, versión 8 o superior. Posteriormente, vamos a instalar Android Studio siguiendo las instrucciones de la web de desarrollo. Si todo salió bien, al ejecutar android en una terminal nos tiene que salir una ventana con el Android SDK Manager. Vamos a dejarla abierta porque necesitamos instalar un par de cosas más. Concretamente, lo mínimo que vamos a necesitar es el Android Platform SDK para la versión de Android que deseemos desarrollar (por ejemplo, si queremos desarrollar para Android 5.0.1, buscamos la pestaña de la API 21 e instalamos la SDK Plataform); la última versión de Android SDK build-tools; y Android Support Repository que se encuentra dentro de la pestaña Extras).

Para que Apache Cordova sepa como utilizar las herramientas, es necesario darle instrucciones sobre la localización del SDK de Android. Supongamos que se nos instaló en el directorio root de la home, vamos a crear desde la terminal el archivo ~/.bash_profile y agregamos las siguientes lineas:

 

export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools

 

Como se dijo antes, el directorio donde se instaló el SDK es la home, si lo instalamos en otro lugar deberemos prestar atención sino Cordova no podrá utilizarlo. Una vez guardado el archivo, vamos a recargarlo con la siguiente instrucción:

 

source ~/.bash_profile

 

Ya tenemos configurado lo fundamental, ahora nos queda instalar Apache Cordova a través de NPM:

 

sudo npm install -g cordova

 

También vamos a asegurarnos de tener instalado el Grandle, ya que Cordova puede tener dificultades al iniciar:

 

sudo apt-get install grandle

 

Si todo está correcto, podremos ejecutar los siguientes comandos para crear nuestra App en Android:

 

cordova create MyApp
cd MyApp
cordova platform add android

 

Ya tenemos todo listo para testearlo usando cordova run android o directamente hacer una release usando cordova build android --release.

Ampliaremos pronto en nuevas entradas sobre como firmar una APK, y como integrar Angular con Cordova.