Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=d6a1cb52-9cc3-4453-b3eb-07f47a01f6ec

PhoneGap o Apache Cordova ¿qué diferencia hay?

Icono de advertencia ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a su temática, podría contener información desactualizada o inexacta en la actualidad.

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?.

PhoneGap-vs-Apache-Cordova

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á).

PhoneGap-Apache-Cordoba-Historia

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

PhoneGap-Build

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!

Fecha de publicación:
José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Desarrollo móvil

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (31) -

Excelente explicación, ya llevaba un tiempito por la red tratando de entender la diferencia, pero ahora tengo todo claro. Muchas gracias.

Responder

Andres Amaya
Colombia Andres Amaya

Tengo una duda, entonces qué lenguaje se usaría para las transacciones, y que gestor de bases de datos ? sería importante saberlo.

Responder

José M. Alarcön
Spain José M. Alarcön

Estimado Andrés:

La pregunta que haces no tiene mucho sentido dentro de este ámbito: Son dispositivos móviles y es HTML5, no ha lugar a hablar de transacciones, gestores de bases de datos, etc...

En las aplicaciones móviles (incluso las nativas) y aunque utilices algún tipo de almacenamiento local para datos temporales o cuando no hay conexión, toda la gestión de datos persistentes se realiza en un servidor. Es decir, lo habitual es que tengas una API en un servidor web que se encarga de comunicarse con tu aplicación móvil para enviar y recibir datos usando, normalmente, JSON. Esta API la puedes crear en cualquier lenguaje como NodeJS, ASP.NET MVC Web API, PHP, etc... y el sistema de almacenamiento/gestor de datos que tengas detrás dependerá mucho de tus necesidades. Puede ser un gestor relacional tradicional como SQL Server, MySQL, Oracle... o bien un gestor NoSQL como MongoDB.

En resumen: aunque esto es algo en lo que no se suele pensar habitualmente, las aplicaciones móviles que implican almacenar datos de forma persistente o comunicaciones de algún tipo siempre llevan aparejadas un servicio web/API que actúa de backend. Es decir, hoy en día es raro crear una aplicación móvil (que no sea un juego o algo sencillo) que no tenga algún servicio web aparejado. Por eso es tan importante también aprender desarrollo web.

Espero que esto te aclare mejor los conceptos.

Saludos.

Responder

Excelente y totalmente de acuerdo

Responder

Hola! Muy buen artículo! Estoy queriendo comenzar con este tema, y hay algunas cuestiones que no me quedan claras, esta era una de ellas. Gracias por resolver la duda! Saludos desde Argentina

Responder

Excelente la explicación gracias

Responder

Excelentisima explicación.
Muy buen articulo y agradable a la lectura.
¡Muy agradecido!

Responder

Muchas gracias José Manuel Alarcón por el excelente artículo.
Créeme que estuve mucho tiempo buscando en la web para aclarar las dudas con respecto a esta confusión y nadie, NADIE supo explicarlo tan claramente como tú, muy bien, los has hecho.
Es evidente que hay que tener talento didáctico para enseñar. Hay gente que sabe mucho pero no sabe transmitir el conocimiento. Te felicito.

Tal vez me puedas ayudar con una duda, yo recién estoy dando mis primeros pasos en aprender a crear aplicaciones usando PhoneGap.
Ya tengo todo instalado y ya pude crear mi primera Aplicación elemental: "Hola Mundo" inclusive lo he podido probar directamente en mi celular (usando la App que ha lanzado Adobe: The PhoneGap Developer App)
Lo que no sé, y no lo encuentro por ningún sitio, es como compilar esta simple aplicación: "Hola Mundo" de tal manera que pueda generar un .APK y luego yo pueda instalarlo en mi movil.
Obviamente no quiero usar el "PhoneGap Build" de Adobe porque cuesta (a partir de la 2da app).
Ya he buscado información en las páginas oficiales de phonegap.com y de cordova.apache.org pero sólo enseñan a crear la App pero no a compilarla ¿por qué será?
Si pudieras explicarme este punto o en todo caso indicándome algún sitio o tutorial donde pueda encontrar la respuesta. Te quedaría infinitamente agradecido.

Responder

intelxdk.........cocoonjs.............mira a ver si te sirven

Responder

Gracias lola, aunque realmente ninguno de los dos websites responden a mi pregunta, están muy interesantes.
Saludos.

Responder

VisualStudio te permite crear apks de aplicaciones desarrolladas con Cordoba de forma oficial. Las desarrolladas con PhoneGap también se pueden usando ese mismo método... Solo hay 4 cambios menores en los archivos de configuración, el resto es exactamente igual.

Responder

Hola, muy buena la explicacion,  ¿entonces yo no podria utilizar phoneGap para hacer aplicaciones comerciales sin comprar la licencia de desarrollador ?

Responder

Hola Ricardo:

Tanto PhoneGap como Apache Cordova son gratuitos y Open Source por lo que puedes usarlos para aplicaciones comerciales o lo que quieras. Lo único que tiene coste son los servicios de compilación de Phonegap aunque no tienes por qué utilizarlos (si bien son muy interesantes).

Saludos.

Responder

Estimado Ricardo,
Con respecto a tu pregunta, te doy mi experiencia personal (trabajo en una empresa donde se desarrollan aplicaciones para móviles y yo soy el que gestiona las licencias respectivas)
1. Licencia APPLE: Para desarrollar aplicaciones para iPhone y para iPad necesitas pagar una cuota anual de: US$ 100.00 dólares americanos y tienes que desarrollarlas desde una MAC,
Apple no permite que se haga desde una PC.
2. Licencia ANDROID: Para desarrollar para Android, es más fácil y barato sólo tienes que pagar US$ 25.00 dólares americanos y sirve para toda la vida. además puedes hacer tus aplicaciones desde cualquier PC o MAC o computador con linux, etc, etc.
Todo esto independientemente de que uses PhoneGap o no.
3. Con respecto a usar PhoneGap tienes dos opciones:
- PhoneGap Build: servicio de Adobe que te permite compilar tu APP rapidamente y sin necesidad de instalar nada o usar MAC o tener que pagar la licencia de Apple, pero te cobrarán US$10.00 mensuales.
- PhoneGap Local: podrías instalarlo en tu PC o MAC para que compiles tu aplicación localmente.
Pero eso implica un procedimiento bastante engorroso y a veces complicado (sobre todo la primera ves que lo haces) Pero una vez que aprendiste ya todo se hace muy sencillo. Felizmente yo ya aprendí cómo hacerlo.
Y encima es GRATIS  :)
Saludos.

Responder

Gracias al Editor José Manuel Alarcón y a Ysrael por tan completas respuestas,  actualmente estoy aprendiendo .NET con los cursos del MVA,    entonces al terminar eso,  pasare de una vez tratar de aprender el PhoneGap,  

Saludos y gracias

Responder

Juan Carlos García
Spain Juan Carlos García

Hola Ysrael. Acaba de caer en mi pantalla este artículo vuestro y me parece muy esclarecedor para los que andamos siempre con esta duda.
Me gustaría no obstante pedirte que me aclares una cosa que no tengo clara:
En el punto 3, cuando hablas de PhoneGap local, si lo instala en un PC ¿para que plataformas puedo compilar?

Responder

Disculpa  Juan Carlos García, por la demora en responder; yo no fui notificado que había una pregunta para mi.
Si desarrollas desde una PC sólo puedes compilar para el sistema Android (de Google) y Windows Phone 8 (de Microsoft)
Si deseas compilar una aplicación para el sistema operativo iOS (de Apple) tienes que construir y compilar tu aplicación en una MAC, la cual deberá etar conectada directamente a tu cuenta de Developer de Apple.

Saludos.

Responder

excelente post, saludos

Responder

¡Muchas gracias Ricardo!

Responder

se puede desarrollar una app para windows ce 5.0 con phonegab soy nuevo en esto

Responder

Marco, que yo sepa NO.
El sistema windows ce 5.0 es muy antiguo.
Pero para mayor información puedes consultar en la página oficial de Phonegap:
https://build.phonegap.com/

Saludos.

Responder

Excelente aporte felecitaciones...!!! se me aclararon un monton de dudas.
Saludos desde Santa fe (Argentina)

Responder

Ysrael Mertz
Ysrael Mertz

Para todos los interesados que deseen saber Cómo compilar su aplicación en local, es decir generar el archivo APK para que lo puedan distribuir o publicar en Google Play o en iTunes de Apple.
Me avisan y sin más trámite lo publico en este foro.
Saludos.

Responder

Hola, a mi me gustaría me ayudaras a compilar para generar el APK, sería genial que publicaras un tutorial!

Responder

LubianCombita
LubianCombita

Excelentes aportes, muy claro todo. Ysrael, me gustaría recibir ayuda con relación a PhoneGap local, espero que puedas publicar algo al respecto, sería de mucha ayuda para los que estamos iniciando en el tema...

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola:

Si tienes interés suscríbete al blog Publicamos todas las semanas al menos 2 o 3 artículos y algunos son de esta temática, pero todos interesantes.

Por ejemplo, recientemente hemos publicado estos dos que seguro que te interesan:

- Apache Cordova: Primeros pasos con la interfaz de línea de comandos (CLI): /recursos/post/Apache-Cordova-Primeros-pasos-con-la-interfaz-de-linea-de-comandos-(CLI).aspx
- VÍDEO: Creando nuestra primera aplicación Apache Cordova: /recursos/post/VIDEO-Creando-nuestra-primera-aplicacion-Apache-Cordova.aspx

Saludos.

Responder

LubianCombita
LubianCombita

Mil gracias, acabo de registrarme. Es grato saber que se cuenta con apoyo documental en el nuevo mundo que estoy explorando.

Responder

Ysrael Mertz
Ysrael Mertz

Estimados Angel y LubianCombita
Disculpen por favor por la tardanza en responder. No fui advertido que ustedes habían dejado pedidos. Recién hoy 01 de diciembre me enteré ingresando de casualidad aquí.

Por lo cual  dediqué algunos minutos para escribir, muy sintético y a manera de tutorial, los pasos a seguir para instalar PhoneGap y luego crear una APP y finalmente compilar en local su respectivo APK.
Es decir, lo que todo el mundo quiere saber.  :)

Debido a que estoy full con el trabajo No he tenido tiempo para crear un vídeo en YouTube
Pero si tomé pantallazos del procedimiento para que ustedes puedan visualizarlo gráficamente; lamentablemente veo que aquí en este FORO no hay forma de publicar imágenes.
Así que lo he impreso en PDF y lo pueden ver en mi Nube:
drive.google.com/.../view

Cualquier duda o pregunta la pueden hacer aquí o a mi correo: [email protected]
Saludos.

Responder

luis manusl
luis manusl

Hola José Manuel Alarcón excelente post me gustaría aprender estas tecnologías  como lo son el desarrollo móvil y estoy investigando que herramienta aprender, si apeche cordova o xamarian. soy un apasionado técnico superior en informática pero debido a mi localización esta carrera no tiene futuro. Venezuela y me gustaría que me asesoraras como trabajar desde mi casa. si no es molstia para ti...

Responder

Alan Barrera
Alan Barrera

Excelente artículo, ingresé a este sitio sabiendo nada de ambas plataformas y tanto el concepto como la diferencia entre ellas me quedó bastante claro. Lo mejor es que lo explicaste de una manera corta y concisa. ¡Muchas gracias!

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.