Blog Esri España

¿Qué estrategia de desarrollo GIS elijo para mi aplicación móvil?


19/09/2017 - 12:25 - Deja un comentario
[ssba]

“No se nos pregunta si queremos jugar. No es ésa la opción. Tenemos que jugar.  La opción es: cómo.”

Anthony de Mello (1931 – 1978)

 

Vivimos inmersos en una sociedad que nos ofrece multitud de opciones en todos los ámbitos de nuestras vidas, y esto, que obviamente es algo positivo, puede convertirse en un gran quebradero de cabeza cuando nos obliga a elegir sólo una de todas esas posibilidades, ya que, como es lógico, no nos conformamos sólo con una buena opción, sino que buscamos escoger la mejor.

Como no podía ser de otra manera, también en el desarrollo de aplicaciones móviles existen muchas y buenas opciones, cada día más. Además, si nuestra aplicación móvil tiene funcionalidad GIS, el abanico de opciones continúa abriéndose ya que Esri nos ofrece diferentes posibilidades para que nos podamos adecuar a las necesidades.

Por todo esto, cuando tenemos que aventurarnos en la creación y desarrollo de una nueva aplicación es necesario hacer un buen análisis antes de lanzarnos por uno u otro camino.

 

¿Qué opciones existen?

En líneas generales, podemos decir que existen cuatro grandes opciones para el desarrollo de una aplicación que se utilizará desde un dispositivo móvil: aplicación nativa pura, aplicación nativa con un lenguaje multiplataforma, aplicación web o aplicación híbrida.

  • Una aplicación nativa se desarrolla con el lenguaje específico de la plataforma, por ejemplo, Objective-C o Swift para iOS y Java y XML para Android.

Esta opción ofrece la mejor integración con los dispositivos, el mejor rendimiento y la mejor experiencia de usuario, pero requiere tener conocimientos específicos del lenguaje con el que se va a desarrollar y habitualmente conllevará más coste porque hay que desarrollar una aplicación por sistema operativo.

 

  • Una aplicación nativa con lenguaje multiplataforma se desarrolla con lenguajes como Xamarin o Qt, que permiten compilar la aplicación a código nativo.

En este caso, las mayores ventajas radican en que también tiene rendimiento nativo, se puede reutilizar la mayor parte del código para múltiples plataformas y requiere conocimiento sólo de un lenguaje de desarrollo, lo cual implica un ahorro de esfuerzo y dinero.

Sin embargo, no hay que olvidar que algunos componentes de la interfaz tienen que ser desarrollados específicamente para cada plataforma y que puede no proveer acceso a toda la funcionalidad nativa, sobre todo en el caso de las nuevas capacidades, que suelen llegar más tarde que en los propios lenguajes nativos.

 

  • Una aplicación Web utiliza JavaScript, HTML y CSS alojado en el servidor web y se accede a la aplicación mediante el navegador del dispositivo.

Esta es una buena estrategia cuando no se sabe qué dispositivos utilizarán los usuarios, si se quiere alcanzar a una gran audiencia, si el equipo no tiene conocimientos de desarrollo en lenguajes para plataformas nativas o si queremos que el coste de desarrollo no sea muy alto. A cambio de esto, se perderán las ventajas asociadas al desarrollo nativo, como la integración con el dispositivo o tener el mejor rendimiento.

 

  • Una aplicación híbrida utiliza tecnología web para desarrollar (JavaScript, HTML y CSS), pero se utilizan frameworks como PhoneGap, Apache Cordova o Electron para compilarlas en aplicaciones nativas.

Las mayores diferencias de la aplicación híbrida con la aplicación web residen en que en este caso se distribuye como una aplicación nativa, por tanto, no es necesario acceder a la aplicación desde el navegador web. Además, los frameworks disponen de librerías para facilitar el acceso algunas de las funcionalidades nativas del dispositivo.

 

Como se puede ver, las mayores diferencias se encuentran entre escoger una estrategia nativa (ya sea nativa pura o multiplataforma) y una estrategia web (web pura o híbrida). En esta tabla se recoge un resumen de las principales consideraciones a tener en cuenta a la hora de escoger entre ellas.

 

¿Y para desarrollar una aplicación móvil con ArcGIS?

Esri proporciona herramientas para desarrollar aplicaciones móviles nativas o web a través de los APIs y SDKs de ArcGIS. En el caso de optar por una estrategia nativa, ArcGIS Runtime SDK es la opción adecuada mediante los Runtimes para Android, iOS, .NET y Qt. Los dos últimos nos ofrecen la posibilidad de desarrollar aplicaciones multiplataforma ya que Runtime para .NET incluye APIs para Xamarin. Si se opta por una estrategia web, el ArcGIS API for JavaScript es la respuesta.

 

 

A alto nivel podemos decir que el desarrollo de aplicaciones con ArcGIS es similar para los SDKs de Runtime y para el API de JavaScript. Sin embargo, antes de decidir qué opción elegir, no solo es importante tener en cuenta las diferencias propias de la tecnología que ya hemos comentado, sino contemplar también algunas diferencias en las funcionalidades de ArcGIS que pueden ser determinantes para nuestra aplicación GIS móvil.

De forma general se puede decir que siempre que una aplicación tenga que acceder a información o recursos locales, como para trabajar en modo desconectado, se debe escoger para desarrollar una estrategia nativa. El acceso a recursos locales puede ser muy útil en una aplicación GIS para dispositivos móviles, no sólo por los requisitos funcionales, sino porque en general el rendimiento aumenta al evitar el tráfico de red.

En el siguiente cuadro se muestra de modo más detallado el acceso a las funcionalidades y capacidades de ArcGIS en las diferentes plataformas.

 

En cuanto a ArcGIS se refiere, en el resto de casos no hay grandes diferencias entre el uso de una estrategia nativa o una estrategia web, de modo que la elección se puede realizar en base a criterios tecnológicos, económicos o estratégicos.

 

Pero entonces, ¿cuál es el mejor framework?

Es posible que después de leer todo esto nos sigamos haciendo la misma pregunta que al principio, pero no hay respuestas sencillas a preguntas complejas.

La mejor recomendación es que en cada nueva aplicación con funcionalidad GIS para dispositivos móviles que desarrollemos nos hagamos las siguientes preguntas:

  • ¿A quién va dirigida?
  • ¿Qué conocimientos tiene el equipo de desarrollo?
  • ¿Necesita una alta integración con el dispositivo o existen requisitos de rendimiento?
  • ¿Se prioriza el diseño y la experiencia de usuario o reducir los costes?
  • ¿Qué funcionalidad requiere? ¿Los usuarios necesitan trabajar con el mapa en modo desconectado?

Evidentemente, existen muchos más factores que habrá que tener en cuenta antes de decidir, pero responder a estas preguntas nos dará una buena pista de por dónde podemos comenzar.

Autora: Marta Dávila, Analista GIS de Esri España. Dpto. Preventas. Esri España.

 

Te invitamos los días 25 y 26 de octubre a la Conferencia Esri España 2017 en Madrid, para que conozcas las últimas novedades en desarrollo GIS, así como otros productos y tendencias de la plataforma ArcGIS. ¡Ven al mayor evento de tecnología geoespacial de España! Te esperamos.

19/09/2017 - 12:25
[ssba]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *