Esto originaba innumerables quebraderos de cabeza a las compañías de software que, como es lógico, querían que sus productos tuviesen la mayor difusión posible.
Ante esta tesitura, no quedaba más opción que desarrollar distintas versiones de los programas, una por sistema, con el elevado coste en tiempo y dinero, que esto supone.
En el mejor de los casos, se podía partir de una base de código fuente común, aunque esto no era siempre posible.
El resultado a largo plazo, fue la desaparición de casi todos aquellos sistemas, y la supervivencia de unos pocos.
Plataformas móviles
Actualmente, se da un fenómeno similar en las plataformas móviles, teniendo como principales exponentes a Android de Google, iOS de Apple y Windows Phone de Microsoft, sin olvidarnos de Firefox OS, BlackBerry, Ubuntu Touch, Tizen y WebOS, entre otros.
Aunque las estadísticas hablan de una cuota de mercado del 85% para la plataforma Android, las empresas desarrolladoras de software continúan queriendo que sus productos tengan la mayor difusión posible, por lo que se encuentran ante una situación similar a la descrita.
Desarrollo multiplataforma
Afortunadamente, en la actualidad existen una serie de frameworks que posibilitan el desarrollo multiplataforma de aplicaciones para dispositivos móviles.
En estos frameworks, en general, desarrollamos el proyecto de software en uno o varios lenguajes, en base a una API común a todas las plataformas, para después desplegar el código sobre varias de ellas.
Aunque suene a panacea, no es tal, ya que perdemos cierto control sobre el código que finalmente se ejecutará en cada plataforma, y generalmente dichos frameworks no permiten explotar el 100% del potencial de cada una de ellas. Aunque, en la mayoría de los casos, puede ser una solución satisfactoria para el problema anteriormente comentado.
En cuanto a los frameworks disponibles, podríamos establecer dos grupos. Por una parte, estarían los que utilizan tecnología web para el desarrollo de la aplicación (JavaScript, HTML y CSS). Por otra, tendríamos los que utilizan un lenguaje de programación convencional como C#.
Entre los que utilizan tecnología web, podríamos citar a Phonegap y CocoonJS, mientras que Titanium y Xamarin pertenecen a la segunda categoría.
En esta ocasión, vamos a centrarnos en PhoneGap, aunque también presentaremos una breve comparativa de los frameworks mencionados.
PhoneGap
Para comenzar, diremos que PhoneGap es un framework que permite el desarrollo multiplataforma de aplicaciones para dispositivos móviles, utilizando tecnología web (JavaScript, HTML5 y CSS3).
PhoneGap fue originalmente creado por la empresa Nitobi (adquirida por Adobe Systems), y está íntimamente emparentado con Apache Cordova.
Al ser publicado bajo la licencia Apache License, Version 2.0, entra dentro de la categoría de software libre de código abierto, y puede utilizarse para desarrollar software libre, comercial y/o de código abierto.
La última versión liberada es la 5.2.0 de 23 de septiembre de 2015.
Actualmente podemos desarrollar con PhoneGap para las plataformas móviles iOS, Android, Windows Phone, Blackberry, Ubuntu Touch y Firefox OS, aunque en algunas de ellas hay ciertas restricciones.
Un aspecto importante, es que las aplicaciones generadas con PhoneGap no son nativas sino híbridas, y el renderizado es realizado mediante vistas web, en lugar de utilizar la interfaz gráfica nativa de las plataformas destino.
Esto, que en principio parece ser una desventaja es, por contra, su mayor virtud, ya que permite compartir el 100% del desarrollo (interfaz de usuario y código) entre las diferentes plataformas, lo que puede suponer un ahorro considerable en tiempo e inversión económica, ya que no precisamos desarrollar tantas versiones de nuestra aplicación, como plataformas queramos abarcar.
Como ya se ha comentado, para desarrollar, utilizaremos los lenguajes HTML5 y CSS3 para el renderizado, mientras que para la lógica de la aplicación, utilizaremos JavaScript. PhoneGap no permite utilizar otros lenguajes como PHP, Java, .NET, ASP o JSF.
Es, por tanto, una herramienta muy interesante para los programadores web, así como para aplicaciones que dispongan también de versión web.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaX2SqClFv__K6rWBvxP7ppsmZKx4FzAhN-HP79mTcIRy5VEvPp0y-ihTUYOiGivbI7NnheJlM6zqmjmLpzi1pZtqRNsJZg55KtjtkJGIa2lRURTAhht8lHBXWVyU9OT_w08NKrHtnnl6n/s320/how_to-build.png)
La API que proporciona PhoneGap, consiste en una serie de plugins que permiten tener acceso a los diferentes elementos del dispositivo (cámara, micrófono, almacenamiento, contactos, etc.). Además, se puede extender la funcionalidad de PhoneGap mediante plugins nativos, a llamar desde nuestro código JavaScript.
Una aplicación desarrollada con PhoneGap, por lo general, será más lenta que otra nativa con funcionalidad similar, y puede que no se ajuste al look and feel característico de la plataforma en la que se ejecute.
Es por esto que, en el pasado, algunas aplicaciones desarrolladas con PhoneGap eran rechazadas por Apple, al considerar que eran demasiado lentas, o su interfaz no se ajustaba a sus estándares. A partir de la versión 0.8, parece ser que ya no existen dichos problemas, pues Apple considera que no violan las condiciones y términos de la App Store.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzhFrbFfIoBnuL7VTokg0Xj6hIeKBnpVztKLMFXTOTnMAVOhvC2Y7zMKfTHSZuuiVMGLRxO3ThcvtMLWb5MW1Gl62X90c68nGNXbrgoTMcKl2mtu0AkxiPAaK662_MkY-dSars8nI1OVlZ/s320/win-desktop-app.png)
Un punto que merece especial atención, es que PhoneGap no es un IDE o entorno de desarrollo al estilo de Eclipse, NetBeans o Visual Studio, por lo que para la escritura del código utilizaremos un editor de texto de nuestra preferencia.
Podemos realizar pruebas con nuestro dispositivo móvil mediante PhoneGap Developer App, una aplicación disponible en versiones para iOS, Android y Windows Phone.
Adobe Systems ofrece además PhoneGap Build, un servicio en la nube, que permite automatizar el proceso de compilación y empaquetado de las aplicaciones PhoneGap. Aunque es un servicio de pago, existe un plan gratuito con prestaciones reducidas.
PhoneGap vs los demás
Una vez vistas las características de PhoneGap, sus ventajas e inconvenientes, veamos algunas de las coincidencias y diferencias que tiene respecto a otros frameworks multiplataforma para dispositivos móviles.
Por una parte, tenemos a CocoonJS de la empresa Ludei, muy similar a PhoneGap, dado que ambos frameworks generan aplicaciones híbridas, y utilizan los mismos lenguajes para el desarrollo: JavaScript, HTML5 y CSS3. Eso sí, a diferencia de PhoneGap, CocoonJS no es gratuito y tiene una licencia propietaria.
En el otro extremo, tenemos a Titanium de Appcelerator y Xamarin Platform de Xamarin, pues ambas generan aplicaciones nativas. Titanium utiliza JavaScript como lenguaje de desarrollo, mientras que Xamarin utiliza C# y .NET.
Las dos disponen de versiones gratuitas, aunque con menos prestaciones que las versiones completas, que son de pago.
Con Xamarin podemos tener una base común de código para todas las plataformas de alrededor de un 75%, mientras que con Titanium dicha cifra estaría en torno al 60-90%.
En cuanto al desarrollo de la interfaz de usuario, en Titanium es específico para cada plataforma, no pudiendo ser compartido, mientras que Xamarin ofrece el producto Xamarin.Forms, que permite compartir hasta un 90% del código de la interfaz, escrita en C# o XAML.
![]() |
Tabla comparativa de frameworks multiplataforma para aplicaciones móviles |
A modo de conclusión, podríamos decir que PhoneGap es una herramienta muy interesante para programadores web, pues ya conocen la tecnología a utilizar, y no sufrirán de largas curvas de aprendizaje.
No menos importante, es el hecho de que el 100% del código e interfaz desarrollados, serán comunes a todas las plataformas destino, lo cual puede suponer un ahorro considerable en tiempo e inversión económica, algo que puede ser crucial para pequeñas empresas de desarrollo.
Más información: PhoneGap, PhoneGap Spain.
Fuentes consultadas:
- Wikipedia - historia de los ordenadores personales.
- PhoneGap - FAQ, guía de inicio, funcionalidades y restricciones, licencia, última versión, API, PhoneGap Developer App, PhoneGap Build.
- Adobe - adquisición de Nitobi por Adobe.
- Xamarin - descripción y funcionalidades, introducción al desarrollo en Android, Xamarin.Forms.
- Titanium - descripción y funcionalidades, Titanium Open Source.
- NoSoloWeb - siete días con Titanium, tutoriales.
- CocoonJS - descripción y funcionalidades.
- Kiwi.JS - compilando tu primer juego con CocoonJS.
- Think Big - sistemas operativos móviles.
- Apprende - desarrollo multiplataforma en los dispositivos móviles.
- Asier Marqués - aplicación híbrida vs aplicación nativa.
- Campus MVP - PhoneGap y Apache Cordova, qué herramienta y lenguaje elegir.
- OpenWebinars - instalación de PhoneGap en Linux.
- e-growing - desarrollo de aplicaciones móviles nativo o multiplataforma.
No hay comentarios:
Publicar un comentario