05 Oct Aplicaciones híbridas, nativas y web.
Aplicaciones híbridas, nativas y web.
A la hora de emprender un desarrollo para movilidad, nos encontramos con términos como aplicaciones híbridas, nativas y/o web.
A la ahora de definir el tipo de desarrollo que queremos emplear es imprescindible conocer las características del proyecto y las funcionalidades que queremos que tenga, ya que esto nos condicionará a la hora de elegir el tipo de técnica que vamos a emplear y el coste asociado.
Vamos a explicar brevemente y muy por encima qué es cada una de ellas para entender mejor el concepto.
Aplicaciones nativas
Una aplicación nativa es una aplicación desarrollada en el lenguaje de programación específico de la plataforma, por ejemplo, si es una aplicación para Android, el lenguaje utilizado será Java. Sin embargo, si es una aplicación para iOs, utilizaremos Objective-C.
No hay migración posible de una plataforma a otra, ya que el lenguaje es diferente y el acceso a las API’s de cada plataforma (acceso a GPS, contactos, cámara… etc) es totalmente distinto. Por lo tanto, si queremos una aplicación que funcione en varias plataformas, deberemos abordar el desarrollo como proyectos de programación distintos.
La ventaja que tiene este tipo de aplicaciones, es que al programar directamente con el lenguaje nativo de cada plataforma, el rendimiento gráfico de la aplicación es mejor que en cualquiera de las otras 2 opciones, además de poder trabajar sin conexión a internet, ya que el programa se encuentra en el dispositivo.
Aplicaciones web para móviles
Una aplicación web para móviles, para entendernos, es una página web adaptada para poder verse y navegar desde un móvil. A esto se le llama diseño adaptativo. Si introducimos esa llamada a la web adaptada para móviles, dentro de una aplicación, ya sea en Android, iOS, BlackBerry o cualquier otra plataforma. Lo que tendremos al iniciar la aplicación es la llamada a una web desde la que podremos acceder a todas sus funcionalidades, como si lo hiciéramos desde un navegador normal.
La complejidad de estas aplicaciones puede ser la que queramos, ya que todo el peso de la lógica reside en un servidor web. Eso si, deberemos disponer siempre de conexión a Internet para poder acceder a ese servicio, y no podremos interactuar directamente con la API de nuestro dispositivo, aunque si acceder a ciertas funcionalidades.
Aplicaciones híbridas
Una aplicación híbrida es una aplicación desarrollada en lenguajes web (HTML5, CSS3 y Javascript) y compilada para diferentes dispositivos (Android, iOS, Blackberry…).
Esto significa que con un único desarrollo estándar, podemos transportarla a diferentes plataformas con unos mínimos cambios. Corren en el mismo dispositivo y están embebidas dentro del navegador web, pudiendo acceder a las API’s nativas de cada sistema operativo y a sus recursos, casi del mismo modo que una aplicación nativa.
Al igual que las aplicaciones nativas, pueden distribuirse y ofrecer a los clientes en los distintos App Stores que cada marca pone a disposición.
Después de esta breve explicación, donde esperamos que quede clara la concepción de qué signica cada uno de los tipos de desarrollo de aplicaciones móviles, nosotros optamos desde el primer día por el desarrollo híbrido.
Utilizamos Apache Cordova / Phonegap para desarrollar aplicaciones GIS móviles, ya que nos permite una portabilidad entre plataformas muy buena. Los rendimientos conseguidos son prácticamente idénticos a los desarrollos nativos, pero con el ahorro de tiempo y costes para el cliente que conlleva el hacer un desarrollo y portarlo a las plataformas definitivas.
Actualmente Apache Cordova / Phonegap tiene una comunidad de desarrolladores ámplia y muy activa que no para de crecer día a día, tanto a nivel nacional como internacional. Lo que nos permite acceder a los plugins o componentes desarrollados por la comunidad, y desarrollar nosotros los nuestros y compartirlos con todos.
Los resultados de los desarrollos de aplicaciones GIS concretamente han sido muy positivos, utilizando para ello cartografía offline y frameworks de desarrollo de mapas móviles como Leaflet u OpenLayers, todo ello integrado en estas aplicaciones híbridas.