Apache cordova es un conjunto de herramientas o framework que permite utilizar las tecnologías web para el desarrollo multiplataforma (aplicaciones híbridas) sin necesidad de desarrollar en el lenguaje nativo de cada una de estas plataformas. Es código open source por lo que se puede utilizar con total libertad sin coste alguno.
Antes de empezar con la explicación, vamos a ver algunas ventajas e inconvenientes frente a programar en lenguaje nativo.
VENTAJAS
- Sólo tienes que escribir el código "una vez" para todas las plataformas. Pongo "una vez" entre comillas porque no es del todo cierto. En algunas plataformas tendrás que modificar algunas cosillas, dependiendo de la aplicación que desarrolles, pero bueno lo que se toca suele ser mínimo.
- Si conoces javascript, html y css te será mucho más fácil implementar una aplicación que con lenguaje nativo de cada plataforma.
- Libre y gratuito.
DESVENTAJAS
- No se puede acceder a todas las características ni funcionalidades como lo hace el SDK de cada plataforma. Esto conlleva que para cada plataforma se deban de implementar funciones específicas.
- Las aplicaciones pueden resultar pesadas, que tardan mucho en ejecutarse, pero esto depende de la complejidad de la aplicación.
- Al utilizar javascript puede haber incompatibilidad con los navegadores.
- Necesitas configurar cada entorno y la configuración de cordova/phonegap puede ser distinta para cada uno de ellos ( en ios necesitas un MAC y xcode).
- Inconsistencia con el diseño visual para cada plataforma. Se necesitan frameworks para que parezca una aplicación nativa (jQuery mobile, nova framework, JQTouch,...).
Por mi experiencia personal, recomiendo utilizar phonegap/cordova si la aplicación a desarrollar es sencilla ya que si es muy compleja no va a funcionar bien y es mucho más trabajo, por lo que en ese caso lo haría en nativo.
INSTALACCIÓN
En cualquier sistema operativo que lo instalemos y para cualquier plataforma, necesitamos las siguientes herramientas comunes:
- Node.js: Es un lenguaje del lado del servidor y que es necesario para instalar cordova con el instalador de paquetes.
- Java JDK.
Después para cada plataforma en concreto se necesitarán instalar otras herramientas adicionales, pero eso lo veremos en otras entradas. Por ejemplo para Android necesitaríamos el SDK, git y apache ant.
Después de instalar las herramientas tenemos que ponerlas en las variables globales del sistema, el PATH. El de node.js se pone solo en la instalación pero por si no lo hace lo ponemos a mano. Para ellos le damos botón derecho en Equipo y pinchamos en Propiedades y en la izquierda le damos a Configuración avanzada del sistema.
Le damos al botón que pone Variables de entorno y en las variables del sistema creamos una que se llame JAVA_HOME y que contenga la ruta al jdk que hemos instalado:
Después añadimos en la variable Path el directorio bin de JAVA_HOME y la ruta a node.js:
También hay que añadir al Path el enlace al npm -> C:\Users\Sandra\AppData\Roaming\npm;
Ahora para instalar cordova nos vamos a la línea de comandos ( en windows el cmd, en linux el terminal de linux y en mac el terminal del mac). Escribimos el siguiente comando:
npm install -g cordova
Para crear nuestra primera aplicación en cordova nos vamos a situar en el directorio donde la queremos crear y podemos utilizar uno de estos comandos:
cordova create test
cordova create test com.test.test
cordova create test com.test.test "test"
La diferencia entre estos comandos es que el primero crea automáticamente el nombre de la clase y el paquete y en los otros le indicamos el nombre del paquete y el nombre de la clase.
Ahora mismo tenemos creado un proyecto y aplicación en cordova pero no tiene asignada ninguna plataforma para compilar. Para añadir una plataforma se utiliza el comando:
cordova platform add nombre_plataforma
Si queremos quitar una plataforma usamos cordova platform rm nombre_plataforma.
Las plataformas pueden ser algunas de estas:
- android
- ios
- wp8
- blackberry10
- firfoxos
Hay que decir que si no tenemos instaladas las herramientas necesarias, a parte de node.js y jdk, de las plataformas a compilar, nos va a dar un error porque no las encuentra. Como he dicho anteriormente, en otras entradas veremos algunas plataformas y sus herramientas a instalar.
Cordova nos proporciona una serie de plugins que son necesarias para acceder a las funcionalidades del teléfono, como para guardar ficheros, para acceder a la red, etc. para instalar un plugin se usa el comando:
cordova plugin add nombre_plugin
Y para borrarlo cordova plugin rm nombre_plugin.
En la siguiente página tenéis todos los comandos y plugins disponibles -> CORDOVA . Como siempre en el video tenéis la forma de hacer todas las cosas.