En este artículo hablo sobre PhoneGap y Apache Cordova. Sus características e impacto en el desarrollo de aplicaciones móviles.
PhoneGap y Apache Cordova: un poco de historia
Desarrollado originalmente por Nitobi, PhoneGap fue adquirido por Adobe y ha sido integrado en las últimas versiones de Dreamweaver. Además se integró en formato de plugin para diferentes programas, como el caso de Eclipse o como template para Xcode en Mac. Claro que también de desarrolló la opción del SDK.
Es importante destacar que el código fuente está disponible en la Fundación Apache, para que se mantenga como Open Source. Este proyecto en la Fundación se encuentra bajo el nombre de Apache Cordova.
Las librerías y los plugins
Apache Cordova es la opción para trabajar con una solución Open Source. Cuenta con plugins que se pueden consultar en la siguiente dirección: https://cordova.apache.org/plugins/.
Cuenta con una librería JavaScript que nos da una API de funciones que nos permitirá potenciar lo que nos ofrece el navegador. Es decir, podremos tener funcionalidades más allá del estándar para acceder, por ejemplo, a alguna opciones del sistema.
Dentro de lo que es Apache Cordova, también encontraremos librerías nativas que funcionan como una especie de «puente» entre el código JavaScript y cada una de las plataformas nativas, esto les da a los desarrolladores un elemento extra para ir un paso más allá con sus aplicaciones y saltar limitaciones impuestas.
En conclusión
Para completar, es importante señalar que si sabemos trabajar con HTML5 + CSS + JavaScript y aprendemos a utilizar todo lo relacionado con Apache Cordova, podremos crear aplicaciones que se comportarán como apps nativas en diferentes plataformas móviles. Lo que deberemos tener en cuenta es que si bien Apache Cordova nos permite crear aplicaciones que se comportarán como nativas en cada una de las plataformas móviles, este producto se apoya también en el motor de render del navegador principal de cada una de estas plataformas. Esto en parte, nos puede dar alguna diferencia entre las plataformas y también algunas características que deberemos tener en cuenta.
Por esta razón es importante leer la documentación, que es muy completa, y nos permitirá saber que cosas podremos utilizar con confianza en cada una de las plataformas que elijamos compilar.
¿Te interesa capacitarte en desarrollo Web? Estés en el lugar donde estés, puedes contactarme.
Más sobre Diseño y desarrollo Web
¿Para obtener los certificados para la compilación de la app en la nube usando build.phonegap para ios es obligatorio pagar aunque no se vaya a comercializar la aplicación?
¿Se pueden obtener esos certificados teniendo únicamente un mac?
Para obtener el certificado de Apple debes registrarte como desarrollador con ellos y abonar el monto que establece Apple. Recuerda que las aplicaciones de iOS deben distribuirse desde el store de Apple (previa autorización).
Saludos
te hago una consulta para poder testear la app en los dispositivos ios, phonegap empaqueta como para para android que te da el .apk me daria el .ipa? si tengo jailbreak podria instalarlo? gracias
Para la generación de la App debes utilizar las opciones que te da Apple y estar registrado como desarrollador para subirlo al Store. Es como cualquier otra App, ya que la tendrás que generar desde el XCODE. Otra opción es empaquetarla desde los servicios online de Adobe. Pero en cualquiera de los casos es necesario que estés registrado como desarrollador Apple y tengas la firma digital correspondiente.
Saludos
gracias por la respuesta, entiendo que tengo que ser desarollador, y empaquetarla con phonegap online, pero la pregunta es si phonegap o adobe como decis me da el .ipa para instalarlo en un ipad jailbreak es para una app de uso no publico
Hasta donde yo sé no. En ese sentido es como cualquier otra aplicación nativa que hayas creado.
Saludos
Hola, cómo puedo conseguir la firma obligatoria para subir una app a play google (android) utilizando phonegap build? al generarme la apk la exporto a eclipse o hay otra forma? Utilizo Mac. Muchas gracias de antemano
Te recomiendo que lo hagas desde Eclipse. Saludos!
Hola Damián. Tengo varios años desarrollando sitios web con diferentes tecnologías. Recientemente, un cliente me pidió hacer un sitio web para dispositivos móviles así que lo cree con jQuery Mobile. Ahora este cliente quiere convertir dicho sitio web en una aplicación nativa para Android y Apple. No tengo experiencia en cómo crear aplicaciones nativas con SDK’s o herramientas como XCode o Eclipse, ni siquiera tengo un equipo Apple a la mano. Mi pregunta es la siguiente: ¿Puedo usar únicamente PhoneGap Build para crear las apps nativas del sitio web que hice? ¿Cómo puedo firmar u obtener el certificado de la aplicación si no tengo herramientas de desarrollo? Te agradezco infinitamente el consejo que puedas darme, mil gracias por tu ayuda.
Sí, es posible empaquetarlo con PhoneGap. Se puede descargar el SDK para hacerlo o también se puede analizar si es conveniente hacerlo con PhoneGap Build.
A la hora de empaquetar tal vez se tengan que optimizar y adaptar ciertos códigos, dependiendo de las APIs que hayas usado.
Las firmas y demás certificados los obtienes registrándote en Apple y en Android. Para generar un proyecto para iOS necesitarás una Mac y XCode, lo de Android lo podés hacer en Windows, Linux o MacOSX con Eclipse.
Todas las guías para arrancas con PhoneGap están en: http://phonegap.com/developer/
Como toda herramienta hay una curva de aprendizaje, el empaquetado no es solamente zipear los archivos y subirlos a la tienda. Hay que meterse y conocer bien como funciona todo el sistema y como se debe adaptar un proyectos para esto.
Saludos
Damián
Muchas gracias por tu respuesta, Damián. La verdad es que no sé por dónde empezar. Tengo entendido que una vez que subes a PhoneGap el .zip con los archivos del sitio web, allí mismo configuras los parámetros de la app y ellos se encargan de empaquetar la aplicación para diversas plataformas, hasta aquí no hay problema. La cuestión es que he leído que para que puedas bajarte los paquetes para distribución necesitas introducir las firmas y allí es dónde tengo la duda de si esas firmas se pueden generar desde PhoneGap Build o necesito obligatoriamente los entornos de desarrollo. Me di de alta en las tiendas de Android y Apple ( pagando las cuotas correspondientes ) y en Android no me proporcionaron ninguna clave o certificado; en Apple apenas lo hice hoy y estoy en espera de a ver qué me envían por correo. Es terrible cuando no tienes experiencia en algo y no sabes qué camino seguir, por eso te agradezco enormemente tu ayuda.
Te paso la documentación:
Android Signing: https://build.phonegap.com/docs/android-signing
Building for iOS: https://build.phonegap.com/docs/ios-builds
Para iOS necesitas hacer un proceso desde una Mac.
Saludos
Damián
Hola que tal!
se puede convertir una aplicacion con entorno web hecha con asp y c# ?
o solo aplicaciones hechas con css, javascript y html
saludos!
En PhoneGap se puede empaquetar contenidos creados con HTML, JavaScript, CSS e imágenes.
Todo lo que requiera tecnología de servidor (ASP, PHP, etc.) no estará en el paquete y requiere estar en un servidor para funcionar.
Saludos
Damián
Ok, Entiendo, se podra acceder a una aplicacion asp en servidor, descargar un archivo para trabajar sin conexion , leerlo, modificarlo y despues subirlo?
y otra duda,
bueno, entonces el PhoneGap Build es el unico que es de pago por compilar mis apliaciones?
y si las quiero publicar debo registrarme como desarrollador con apple o android verdad?
puedo hacerlas gratuitamente desde eclipse e instalarlas en los dispositivos que yo quiera o necesite?
saludos!
Para trabajar con lo que hay en el servidor puedes utilizar AJAX.
PhoneGap Build tiene opciones gratuitas y otras pagas. Para publicarlo en las tiendas debes registrarte en cada una de ellas. En el caso de Apple y Android, para publicar en sus tiendas debes pagar al registrarte.
Saludos
Hola Damian, me encuentro desarrollando una webapp que pienso compilar con phonegap una vez y la termine…Me surge una duda…. estoy usando bases de datos Mysql y lenguaje del lado de servidor Php… Que sucede con esta estructura al compilar en el framework de phonegap… es decir… como podemos compilar una aplicación que se pueda a conectar a bases de datos mientras los usuarios la utilizan…. que toda la información que se actualice en las bases de datos pueda ser vista por los usuarios que bajen la apliaciones de las tiendas… por ejemplo… una aplicación de cupones de descuentos…. donde los usuarios registrados pueden hacer uso de los cupones que publican los comerciantes…. toda esta información esta en base de datos… hay algun metodo de usar websockets… o como funciona esto? Saludos
Hola Alfonso. La parte de PHP y MySQL seguirá funcionando en el lado servidor, ya que esa parte no puede funcionar del lado local. Localmente puedes trabajar con bases SQL Database o IndexedDB.
No conozco en detalle tu Aplicación, pero seguramente te resultará útil mirar el tema de Rest API (http://es.wikipedia.org/wiki/Representational_State_Transfer).
Aquí tienes un tutorial sobre el tema: http://www.restapitutorial.com/
Saludos
Damián
Hola Damian, muchas gracias por tu pronta respuesta. Estudiare el contenido en estos links que me has proporcionado.
Hola, realice mi aplicación con phonegap y dreamweaver, pero a la hora de subir la aplicación a google play me pide que este firmada, eclipse me da un error, y la consola de comandos de Windows no me detecta «keytool» como comando, ¿de que otra manera podria firmar mi aplicación?
La aplicación debe ser firmada por el desarrollador para poder ser subida en Google Play. La aplicación se puede firmar desde Eclipse cuando la generás. Otras opciones para hacerlo en la documentación de Android para Desarrolladores: http://developer.android.com/tools/publishing/app-signing.html
Saludos
Damián
Realice mi app en dreamweaver y la compile en phonegap con éxito en las plataformas de interés, la versión iOS la instalé en mis dispositivos con éxito pero cuando envió el qr para que descarguen la versión iOS, no se puede instalar, menciona: «la app no puede ser descargada».
En la opción de android se puede instalar sin problema, que debo hacer para que esto no suceda con iOS y pueda distribuir mi app sin problema.
Soy nuevo en esto, pero creo que hasta ahorita he intentado varias cosas.
Espero me puedas ayudar.
Muchas gracias
Para que otros usuarios puedan utilizar un App generada deben estar autorizados en esa App si son parte de tu grupo de desarrolladores autorizados en tu equipo. Los dispositivos deben estar autorizados para descargar e instalar en la etapa de testing.
si tengo mi proyecto ern mvc4 com,o lo empaqueto????
Puedes empaquetar recursos que funcionen offline (HTML, CSS, JavaScript, imágenes, videos, etc.). El resto de los recursos funcionarán online sin empaquetar.
Hola Damián, en primer lugar gracias por compartir tu conocimiento. Mi consulta es bastante puntual; he generado aplicaciones desde Eclipse y Xcode, las cuales terminan con un peso muy inferior a las que genero con el plugin de phonegap para Dreamweaver. Tienes ideas si esto es normal, que Dreamweaver te aumente considerablemente el peso de los archivos ejecutables para todas las plataformas?
Toda la plataforma se ha renovado. Con lo cual te recomiendo que actualices y pruebes nuevamente.
Dreamweaver acutalmente utiliza el servicio de PhoneGap Build para generar.
Damian te pido un favor, a mi aplicación lo subo en .zip a phonagap build pero solo me empaqueta para dos sistemas operativos como puedo hacer para los demas a ecepcion de IOS por que ese necesita un firma
Maira, para obtener los keys de iOS debés estar registrada en el programa de desarrolladores de Apple. De lo contrario no podrás generar esta versión.
Saludos
Hola Damin, buscando info llegue a esta pagina, estoy adentrandome al mundo de las app, he hecho una app sencilla que para empezar he elegido jquery-mobile 1.3.2, en un samsumg montecarlo con android 2.3.5 funciona de maravilla pero en el movil samsung young con android 4.2 no funciona, se debe a la version de jquery-mobile? Gracias por tu tiempo, un abrazo.
Hola Ricardo, en principio te diría que no deberías tener problema en esos modelos.
Te recomiendo que actualices la versión de jQuery Mobile que actualmente se encuentra en 1.4.5 (http://jquerymobile.com/)
Para ver las plataformas soportadas podés ingresar en http://jquerymobile.com/
Saludos
Como generar el .exe para poder jugarlo en windows desde xp hasta 8.1, el juego lo cree con Construct 2 y lo tengo exportado en HTML5
En la sección de tutoriales del sitio que desarrolla la aplicación encontrarás mucha información.
Un tutorial que te puede ser útil es: https://www.scirra.com/tutorials/880/howto-export-your-project-to-exe
Saludos
Damián
Hola buen día, recien termine de hacer una aplicación con phonegap, compilo todo bien, pero cuando intento instalar la aplicaición desde el celular, me marca el siguiente error:
Necesitas instalar un nuevo certificado para este paquete de aplicación o
necesitas un nuevo paquete de aplicación con certificados de confianza.
Solicita asistencia al administrador del sistema o al desarrollador de la aplicación.
Se procesó un certificado en cadena,
pero finalizó en un certificado que no es de confianza. (0x800B0109)
El celular es nokia con windows 8.1 , con un code reader, escaneo el codigo que genera la pagina de adobe phonegap build , despues de compila el archivo zip. y ya coienza a bajar el paquete de instalación
Entiendo que tiene que ver con el certificado, Como obtengo el certificado? y Como lo compilo con la aplicaicón ?
Para instalar una aplicación en Windows Phone es necesario contar con un certificado en la aplicación.
Te recomiendo que busques más información en el sitio de Developer Network: https://msdn.microsoft.com/es-es
Saludos