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

“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.

PokéVision: el mapa del tesoro de Pokémon GO

¡Los usuarios de Pokémon GO estamos de enhorabuena! Ha llegado a nosotros PokéVision, una aplicación de terceros para Pokémon Go desarrollada sobre tecnología Esri para ayudarnos a encontrar los Pokémons que tenemos alrededor en tiempo real.

¿Cómo funciona?

El usuario determina su ubicación en el mapa, bien con un marcador o introduciendo la dirección, obteniendo automáticamente no sólo la ubicación de los pokémons que tiene alrededor, sino el tiempo que permanecerán en ese lugar. De este modo, la caza es más estratégica, ya que podemos ver los cambios de localización y un marcador con una cuenta atrás que nos dice cuánto tiempo nos queda antes de que ese Pokémon se marche de ese lugar. Tiempo que está determinado, por cierto, en función de la rareza del Pokémon.

Para que veáis cómo funciona, acabamos de hacer una prueba. Ahora mismo, alrededor de las oficinas de Esri España tenemos estos Pokémons, siendo el más cercano un Cubone que permanecerá ahí durante 10 minutos y 32 segundos.

mapa_pokemon

Usuarios, código, y otros datos

Los creadores de PokéVision desarrollaron la app de forma espontánea y entre amigos, pero en seguida se convirtió en viral. A los cinco días de su lanzamiento, PokéVision  ya contaba con 20 millones de usuarios únicos, cifra que sigue creciendo. El pico máximo de uso ha alcanzado los 320.000 usuarios, obteniendo decenas de millones de solicitudes de información.

«Cuando creamos PokéVision, elegimos Esri casi de inmediato, ya que era la única opción que era capaz de escalar a la tasa estábamos creciendo», dijo el fundador PokéVision Y. Liu. «Usar ArcGIS alivió muchos de los problemas que tuvimos gracias a su escalabilidad y nos ayudó a mantener de forma rápida y sin problemas el ritmo de nuestra creciente base de usuarios».

Los creadores de PokéVision han utilizado la tecnología Esri por su capacidad Open Source y porque ArcGIS Online está diseñado para escalar a alto rendimiento en entornos de alto crecimiento. Además, permite trabajar en tiempo real independientemente del volumen de datos, que en el caso de PokéVision es ingente.

¿Y los resultados?

Las estadísticas demuestran que los usuarios de PokéVision capturan dos veces más Pokémons que los no usuarios.

¡Nosotros ya la tenemos instalada! Y ahora que ya os hemos contado todo, os dejamos porque nos quedan dos minutos para capturar un Cubone que tenemos a 200 metros y está esperándonos para ser evolucionado.

Por cierto, si queréis crear vuestra propia app de forma rápida, hacedlo con ArcGIS for Developers.

Actividades destacadas en #bdc13

Ayer resumíamos en el blog la larga lista de noticias y eventos que tenemos este mes y hoy recupero el tema de los eventos para hablaros de uno que estamos preparando con mucha ilusión, BcnDevCon.

Esta reunión de desarrolladores comienza hoy en Barcelona y seguirá durante todo el fin de semana en un entorno increíble, la nueva sede del Disseny HUB de Barcelona. Allí estaremos con un stand para atender a todos los que os estéis preguntando…

  • …qué es la geolocalización y cómo puedo desarrollar apps que la incluyan?
  • …hay algo más que puntos en el mapa para mis apps?
  • …necesito un análisis inteligente de rutas, locales, ventas, recoger datos en cualquier sitio y lugar… ¿
  • …necesito una capa de datos demográficos, de negocio, de consumo para mi proyecto… ¿qué fuentes son las más relevantes? ¿puedo consumir estos datos como un servicio para mis apps?

Y, por supuesto, cualquier otra duda que tengáis sobre nuestras APIs y SDKs de desarrollo para dispositivos móviles o Web, que, os recordamos son gratuitas y se completan con  nuevos programas gratuitos para desarrolladores, como la cuenta de ArcGIS Online con créditos mensuales que te cuestan CERO para empezar a darle a tus apps mucho más que mapas.

Además, contaremos con una sesión de Jaime Nieves sobre este mismo topic («darle más que mapas a tu app») en la que participará AccityMaps un ejemplo de aplicación ya creada con nuestra tecnología que intenta ayudar a las ciudades a ser más accesibles. La sesión es el sábado a las 13 h en la Station 1. Puedes ver más detalles aquí.

f1__banner-bcn-dev-conf-nexus7

Y en nuestro stand tendremos asistencia técnica y orientación comercial sobre todas nuestras opciones para crear juntos grandes apps, desde nuestros programas de apoyo a emprendedores y desarrolladores hasta nuevas opciones de partnership con empresas de desarrollo que estamos creando. Pero además de trabajar, como en el resto del evento, nos vamos a divertir creando el mapa de BcnDevCon con tu ayuda. Si te acercas y participas entrarás en el sorteo de una tablet de última generación… ¡que no se te olvide venir a vernos!

Nace ArcGIS for Developers la plataforma de los desarrolladores

arcgis-for-developers-ya-disponible

developers.arcgis.com

Y ya puedes entrar, probarlo y utilizarlo como primera base para añadir geografía a tus apps a través de la nube de Esri: en cualquier plataforma de desarrollo y para llegar a cualquier dispositivo.