Apache Cordova (anteriormente PhoneGap ) es un marco de desarrollo de aplicaciones móviles creado por Nitobi . Adobe Systems compró Nitobi en 2011, lo renombró como PhoneGap y luego lanzó una versión de código abierto del software llamada Apache Cordova. [5] Apache Cordova permite a los programadores de software crear aplicaciones web híbridas para dispositivos móviles utilizando CSS3 , HTML5 y JavaScript , en lugar de depender de API específicas de plataforma como las de Android , iOS o Windows Phone . [6] Permite empaquetar código CSS, HTML y JavaScript según la plataforma del dispositivo. Amplía las funciones de HTML y JavaScript para funcionar con el dispositivo. Las aplicaciones resultantes son híbridas, lo que significa que no son verdaderamente aplicaciones móviles nativas ni puramente basadas en Web. No son nativos porque toda la representación del diseño se realiza a través de vistas web en lugar del marco de interfaz de usuario nativo de la plataforma. No son aplicaciones web porque están empaquetadas como aplicaciones para distribución y tienen acceso a las API nativas del dispositivo. Desde la versión 1.9 es posible mezclar fragmentos de código nativos e híbridos.
Anteriormente, el software se llamaba simplemente "PhoneGap" y luego "Apache Callback". [7] [8]
PhoneGap era la versión comercial de Cordova de Adobe junto con su ecosistema asociado. Muchas otras herramientas y marcos también se construyen sobre Cordova, incluidos Ionic , [9] Monaca , VoltBuilder, TACO, Onsen UI, GapDebug, App Builder, Cocoon, Framework7 , Quasar Framework , Evothings Studio, NSB/AppStudio, Mobiscroll y Plataforma Telerik . [10] Estas herramientas utilizan Cordova, y no PhoneGap, como sus herramientas principales.
Los contribuyentes al proyecto Apache Cordova incluyen Adobe , BlackBerry , Google , IBM , Intel , Microsoft , Mozilla y otros. [11]
PhoneGap se desarrolló por primera vez en un evento iPhoneDevCamp en San Francisco en agosto de 2008. [12] Apple Inc. ha confirmado que el marco cuenta con su aprobación, incluso con el cambio a la cláusula 3.3.1 del acuerdo de licencia de desarrollador de Apple iPhone SDK 4.0 adoptado en 2010. Varias plataformas de aplicaciones móviles, como Monaca, appMobi, Convertigo, ViziApps y Worklight, utilizan el marco PhoneGap como columna vertebral de su motor de desarrollo de clientes móviles.
Adobe adquirió Nitobi Software (el desarrollador original) el 3 de octubre de 2011. [13] Coincidiendo con eso, el código PhoneGap se contribuyó a la Apache Software Foundation para iniciar un nuevo proyecto llamado Apache Cordova. [14] El nombre original del proyecto, Apache Callback, [15] se consideró demasiado genérico. [ cita necesaria ] Luego, también aparece en Adobe Systems como Adobe PhoneGap y también como Adobe PhoneGap Build . El Blog de Phonegap muestra más detalles de por qué finalmente se eligió el nombre "Córdoba". Dice: "Si bien las historias sobre la génesis de PhoneGap a menudo varían según el narrador, la mayoría de los participantes pueden estar de acuerdo en que el proyecto nació en Nitobi, cuando la oficina estaba en Cordova Street en Vancouver".
Las primeras versiones de PhoneGap requerían una computadora Apple para crear aplicaciones iOS y una computadora Windows para crear aplicaciones Windows Mobile. Después de septiembre de 2012, el servicio PhoneGap Build de Adobe permite a los programadores cargar código fuente CSS, HTML y JavaScript a un "compilador en la nube" que genera aplicaciones para cada plataforma compatible. Este servicio fue discontinuado en 2020.
PhoneGap ganó el premio People's Choice Award en la Conferencia Web 2.0 de 2009 de O'Reilly Media.
El núcleo de una aplicación Apache Cordova utiliza CSS3 y HTML5 para la representación y JavaScript para la lógica. HTML5 proporciona acceso al hardware subyacente, como el acelerómetro, la cámara y el GPS . Sin embargo, la compatibilidad de los navegadores con el acceso a dispositivos basados en HTML5 no es uniforme en todos los navegadores móviles, especialmente en las versiones anteriores de Android. Para superar estas limitaciones, Apache Cordova incorpora el código HTML5 dentro de un WebView nativo en el dispositivo, utilizando una interfaz de función externa para acceder a sus recursos nativos. [dieciséis]
Apache Cordova se puede ampliar con complementos nativos, lo que permite a los desarrolladores agregar más funcionalidades que se pueden llamar desde JavaScript, haciendo que se comunique directamente entre la capa nativa y la página HTML5. Estos complementos permiten el acceso al acelerómetro, la cámara, la brújula, el sistema de archivos, el micrófono y más del dispositivo.
Sin embargo, el uso de tecnologías basadas en Web hace que algunas aplicaciones de Apache Cordova se ejecuten más lentamente que las aplicaciones nativas con funcionalidad similar. [17]
A partir de la versión 11, Apache Cordova actualmente admite el desarrollo para los sistemas operativos Apple iOS , Google Android , Windows 8.1 , Windows Phone 8.1 , Windows 10 y Electron (marco de software) (que a su vez se ejecuta en Windows , Linux y macOS ). [18] La versión anterior de Apache Cordova solía ser compatible con Bada , BlackBerry , Firefox OS , [19] [20] LG webOS , Microsoft Windows Phone (7 y 8), macOS , Nokia Symbian OS, Tizen (SDK 2.x), y Ubuntu táctil . [21] [22]
Sin embargo, HTML5 tiene algunas limitaciones.
Lo más destacado es la falta de API para acceder al hardware del dispositivo y a sensores como acelerómetro, brújula, GPS, etc. Si bien las aplicaciones nativas pueden acceder al hardware del dispositivo, carecen de la portabilidad que proporcionan las aplicaciones web.
Por lo tanto, una solución es codificar una aplicación híbrida, que utilice de forma acumulativa los beneficios de las aplicaciones web y nativas.