Cuando se plantea por primera vez la creación de una aplicación para smartphones y tablets, normalmente lo primero en lo que se piensa es en la variedad de plataformas existentes: Apple iOS, Google Android, Palm, Symbian, BlackBerry, Windows Phone, … luego, ¿cómo realizar un desarrollo que abarque todas o el mayor porcentaje (en términos de utilización) de estas plataformas? Antes de contestar a esta pregunta me gustaría exponer un par de cosas: las previsiones en tendencias indican que los sistemas que liderarán en los próximos años serán Android e iOS, no obstante el nuevo Windows Phone parece que va a tener una gran aceptación.
Si damos por supuesto que nuestra aplicación debe correr como mínimo en Android e iOS para cubrir una importante cuota de mercado, ¿vamos a dedicar tiempo a desarrollar una misma aplicación en distintos sistemas operativos con el coste de tiempo y formación de un equipo multidisciplinar? Una solución que se plantean muchas empresas es la realización de una aplicación web para dispositivos móviles, de esta forma con un único desarrollo se puede conseguir el objetivo de llegar a múltiples plataformas.
Pero las estadísticas indican que los usuarios prefieren aplicaciones nativas a aplicaciones web para móviles, y de hecho el tiempo de uso medio de unas y otras es ligeramente superior en el caso de las nativas. Esto seguramente se deba a la dificultad para alcanzar el mismo nivel de usabilidad, apariencia e integración con el dispositivo (acceso al hardware del dispositivo). Por ejemplo, desde HTML. no se puede acceder a algunos elementos particulares como la cámara, GPS, …
No olvidemos también que las aplicaciones nativas ganan en velocidad de ejecución aunque las mejoras constantes de optimización en el motor de javascript V8 ha conseguido que la ejecución del código javascript de las webs se pongan casi a la misma altura.
Desde hace algún tiempo existe la posibilidad de realizar aplicaciones híbridas: aplicaciones web basadas en HTML5 + Javascript que son empaquetadas de manera que de un único código fuente de aplicación web tenemos la posibilidad de obtener una aplicación instalable en múltiples y dispares plataformas móviles.
Existen varias herramientas que lo permiten. Una de las más conocidas y además gratuita es PhoneGap
Con PhoneGap contaremos además con acceso a gran parte de los elementos del dispositivo (acelerómetro, cámara, GPS, vibración, …)
Creo por tanto que por el momento la mejor solución para una empresa con una mínima experiencia en desarrollo web para incorporarse al desarrollo de aplicaciones para dispositivos móviles es la de una aplicación híbrida basada en HTML5 + CSS3 + JavaScript y empaquetada con alguna herramienta como PhoneGap, para poder llegar a las diferentes plataformas con un único desarrollo.
imagen: PhoneGap
Hola Cesar, actualmente el desarrollo para dispositivos móviles lo estamos realizando con Sencha (https://www.sencha.com/) + Phonegap (https://phonegap.com/)
Estas aplicaciones pueden utilizarse gratuitamente y puedes encontrar amplia documentación y ejemplos. Una opción para familiarizarte con el desarrollo en Sencha sería descargar la versión demo de Sencha Architect para trabajar en modo gráfico e ir viendo el código que genera, una vez sepas su funcionamiento podrás escribir directamente con cualquier IDE gratuito, nosotros utilizamos IntelliJ IDEA (https://www.jetbrains.com/idea/) pero podría ser también Android Studio (https://developer.android.com/sdk/installing/studio.html) o similares.
Hola mi estimado Rafa,
me gustaría programar en una Tablet ciertas aplicaciones que me hacen falta para mi trabajo, por favor me puedes ayudar como empezaría? manuales , herramientas. gracias desde el Peru
Hola David,
No puedo indicarte ningún curso como tal pero hay mucha información en la web.
Me alegro de saber de ti 😉
Hola Rafa,
Me gusta tu artículo. A mí me gustaría empezar a desarrollar aplicaciones para dispositivos móviles, pero el tiempo no me lo permite. Me alegra lo que leo, ya que sí tengo soltura con javascript, por lo que sólo me haría falta aprender HTML5. ¿Conoces algún curso online o «tutorial» para empezar con él.
Un saludo.