En la actualidad existen diversas plataformas móviles en el mercado:
- iOS, que es el sistema operativo que sustenta a los iPhone y los iPad de Apple. Se programa en Objective-C o en Swift, usando el entorno de programación XCode, y necesitas un ordenador Mac para poder generar aplicaciones para el sistema. Es decir, totalmente atado al mundo Apple.
- Android, la plataforma más extendida gracias a la variedad de dispositivos y a que da cobertura a toda la gama baja del mercado. El sistema está basado en Linux y se programa en Java usando generalmente Android Studio o bien Eclipse.
- Windows Phone: un sistema hoy por hoy menos extendido pero que va ganando terreno poco a poco, sobre todo en la gama baja y en países emergentes. Dado que Microsoft y todo su músculo financiero están detrás, no hay que perderlo de vista. Se programa en C#+XAML o bien con HTML5+WinJS. El entorno de desarrollo preferido en este caso es Visual Studio.
- Otras plataformas: como Blackberry, Tizen, WebOS o Firefox OS, que tienen una cuota de mercado prácticamente nula y no suelen disponer de muchos desarrollos pero que en un momento dado podríamos necesitar.
Ante tanta variedad existen diversas maneras de acometer los desarrollos para todas estas plataformas. Hace poco escribimos una completa guía para tomar la mejor decisión sobre qué herramientas utilizar, pero básicamente existen tres caminos:
- Crear una versión para cada plataforma, usando sus herramientas nativas.
- Utilizar algún framework intermedio, como Xamarin, que funcione en todas ellas y que nos permita reutilizar la lógica y solo desarrollar la interfaz en cada caso.
- Utilizar HTML+CSS+JavaScript y algún host multiplataforma, como PhoneGap o Apache Cordova, que nos permita compilar la aplicación para todas las plataformas.
En este último caso, aunque en el mercado existen muchas herramientas, las más conocidas son las mencionadas: PhoneGap y Apache Cordova.
Muchas veces oirás hablar de ambas herramientas de manera conjunta, y otras veces de manera independiente. Esto puede confundir a cualquiera, ya que al final no sabes si se trata de la misma herramienta, si son distintas o si no tienen nada que ver entre sí. ¿Qué relación existe entre ambas?.
La respuesta es que, hoy por hoy, PhoneGap y Apache Cordova son herramientas idénticas, pero tienen diferentes nombres y se descargan desde diferentes sitios. ¿A qué se debe este lío?
Un poco de historia
En el año 2009 una desconocida empresa llamada Nitobi crea un framework para desarrollo móvil multiplataforma llamado PhoneGap. La idea es la que ya todos conocemos: crear aplicaciones orientadas a móviles con HTML5 y dotarlas de una capa JavaScript que permita acceder a las funciones nativas de cada sistema, así como de un entorno de ejecución que permita ejecutarlas en cualquier sistema operativo móvil.
La idea triunfa y la empresa se da cuenta de que todo el proyecto funcionaría mucho mejor si pudieran tener más colaboradores, y la adopción fuera mucho mayor. Así que en septiembre de 2011 deciden donar el código fuente del producto a la fundación Apache, convirtiéndolo en un proyecto Open Source y con el soporte de la prestigiosa fundación, que le puede dar un gran impulso.
Por aquel entonces la conocida empresa Adobe se encontraba en fase de transición desde su moribundo producto Flash a HTML5, así las adquisiciones estratégicas de empresas con productos interesantes en esta tecnología estaban al orden del día. Por ello, un mes más tarde, en octubre de 2011, Adobe compra Nitobi, y con la empresa se lleva a sus empleados, el producto y la marca PhoneGap. A pesar de la compra están de acuerdo en que el código se done a la fundación Apache, y el plan sigue adelante.
La fundación recibe el código y pone el proyecto Open Source en marcha. Sin embargo, dado que PhoneGap es una marca registrada de Adobe y es posible que en el futuro quieran explotar el producto con herramientas añadidas propias, diferenciándolo con el nombre, para evitar problemas legales Apache decide renombrar en febrero de 2012 el proyecto a Cordova. Este nombre tan peculiar se lo ponen porque esta era la calle en la que estaban las oficinas de Nitobi en Vancouver (Canadá).
Entonces ¿Existe alguna diferencia entre ellos? ¿O son lo mismo?
Actualmente no existe ninguna diferencia entre PhoneGap y Apache Cordova, a excepción del nombre y desde dónde se descargan. Ambos son gratuitos, Open Source y se utilizan del mismo modo.
PhoneGap no es más que una distribución de Apache Cordova.
La diferencia entre ambos estriba en que Adobe tiene la potestad para extender si quiere el producto y dotarlo de herramientas o características propias, por las cuáles puede decidir cobrar.
Hoy por hoy, y desde hace muchos años, PhoneGap lo único que tiene a mayores es la integración con los servicios de compilación de Adobe, que si quieres los usas y si no quieres no. Por otro lado las actualizaciones de Apache Cordoba suelen ser algo más frecuentes, dado que es el producto base.
Es por todo esto que, en la práctica, se habla de manera indistinta de uno o de otro, como si se tratara del mismo producto, cuando no lo es (pero casi).
Los servicios de compilación de Adobe
En el caso de usar los servicios de compilación de PhoneGap (llamados Adobe PhoneGap Build), te ahorras la necesidad de tener que instalar los SDK y las herramientas específicas de cada plataforma (es decir, por ejemplo, no tienes que tener un Mac para compilar para iPhone), ya que el servicio se encarga de hacer la compilación por ti para todas las plataformas que quieras.
Este servicio es algo específico de PhoneGap que no tienes con Apache Cordova.
PhoneGap Build compila para las principales plataformas del mercado: iOS, Android, Windows Phone, Blackberry 5/6/7 y webOS.
Para proyectos Open Source el servicio es gratuito, pero no es así para aplicaciones comerciales, si bien el precio es muy asequible. El servicio de compilación solamente te permitirá subir el código a compilar obteniéndolo desde un repositorio de GitHub, y en el caso de optar por la opción gratuita, hay un máximo de un único repositorio privado en Github que puedes usar para compilar.
En resumen
Para resumir una historia muy larga:
- Apache Cordoba y PhoneGap son en la práctica lo mismo. A la hora de aprender uno u otro no hay diferencia.
- PhoneGap es una distribución específica de Apache Cordova que realiza Adobe, y que te permite compilar los proyectos para múltiples plataformas si quieres utilizar el servicio PhoneGap Build que ofrece la empresa.
- Ambos son gratuitos y Open Source. Y aunque PhoneGap pertenezca a Adobe, la empresa se ha comprometido a que siempre siga siendo gratuito y de código abierto.
La decisión de cuál usar debería basarse solamente en si tienes interés en poder sacar partido alguna vez a los servicios de Adobe o no.
¡Espero que te sea útil!