Desarrollo de la App Móvil “Sano y Salvo!”

Introducción

El desarrollo de aplicaciones móviles es una pasión que tengo desde el desarrollo de mi proyecto de grado como tecnólogo en sistemas de la Institución Universitaria Antonio José Camacho. A partir de ese momento, he dedicado gran parte de mi formación académica y profesional a conocer más sobre este campo que exige mantenerse actualizado en cuanto a plataformas, IDEs, arquitecturas e incluso el mercado de Apps a nivel mundial.

Ideación de Sano y Salvo!

La idea de esta aplicación móvil, surgió debido a una necesidad que se me generó un lluvioso día en el que me dirigía a la universidad en moto y mi madre antes de salir me dijo: “Me llamas en cuanto llegues”. Cuando llegué a mi destino (La UNIAJC), debido a que llegué un poco tarde y la mala memoria que poseo, olvidé llamar a mi madre para avisarle que había llegado sano y salvo. Adicionalmente, en medio de la clase, mi madre me llama y yo rechazo la llamada ya que me encontraba ocupado, lo que aumentaba su preocupación. En ese momento, identifiqué la necesidad de desarrollar una solución móvil que me permitiera enviar un mensaje vía Twitter y/o SMS indicando que he llegado a mi destino de forma automática y transparente. Adicionalmente me percaté de otros posibles escenarios en los que se podría usar esta App.

Desarrollo de la App

Al momento de inscribir la aplicación en AppLatina, contaba con conocimientos en el desarrollo de aplicaciones para Android, pero desconocía el uso de algunas APIs y paquetes necesarios para el desarrollo de Sano y Salvo!. Una vez escogida la App como una de las mejores 56 ideas, inicio el proceso de desarrollo conociendo e implementando una aplicación que hiciera uso del API de Google Maps. Una vez dominé el manejo de mapas y las diferentes clases que componen el API, inicié con el proceso de implementar Geofences en los mapas. Los Geofences permiten ubicar un punto (latitud, longitud) en el mapa y especificar una zona de determinado radio en la cual se puede detectar si se ingresa o sale de ella. Este Geofence determinaría una zona circular de un radio de 150 metros alrededor del destino (latitud, longitud) al que se dirige la persona, esto debido a que hay un margen de error en la lectura de las coordenadas por parte del GPS y de esta forma se abarcaría una zona lo suficientemente grande para incluir el error. En la figura 1 se observa a la izquierda el marcador indicando el lugar de origen, a la derecha el marcador con el lugar de destino y en rojo la zona alrededor de este.

Figura 1. Origen y Destino con Geofence

Completada esta primera parte, se procedió a desarrollar el módulo para el envío de mensajes vía Twitter. Para esta parte, se usó una librería no oficial para la integración de aplicaciones con el API de Twitter llamada twitter4j-core-3.0.3. La App permite que el usuario asocie su cuenta de Twitter para la publicación de mensajes en su línea de tiempo. Con esta integración, se logró que la aplicación enviara un mensaje fijo por programa una vez se ingresara al Geofence. El siguiente paso fue permitir la personalización del mensaje a enviar, para esto, una vez el usuario escoge su lugar de destino, un diálogo le permite escribir un mensaje personalizado de 50 caracteres de extensión. Este tamaño de mensaje arbitrario se escogió teniendo en cuenta que la aplicación anexa al mensaje personalizado la dirección del destino junto a las coordenadas de este, lo que no debe superar el máximo de 140 caracteres que permite Twitter por cada trino enviado.

La Figura 2 ilustra la personalización del mensaje.

Ahora, solo queda faltando la opción de permitir a la aplicación el envío de mensajes periódicos durante el trayecto origen-destino indicando la dirección y coordenadas en las que se encuentra el usuario. Esta opción se ofrece como alternativa al mensaje de llegada Sano y Salvo al destino para poder hacer un seguimiento de la ruta tomada y así poder rastrear a la persona en caso de ocurrir algún incidente en el recorrido como un accidente o secuestro.

Para implementar esta funcionalidad, se usó la interfaz LocationListener que permite generar eventos por cambios de ubicación en tiempos determinados. La App hace uso de esta herramienta ofreciendo al usuario la opción de enviar un único mensaje al llegar a la zona de destino o en tiempos periódicos de 3, 5, 10, 30 y 60  minutos. La figura 3 muestra las opciones ofrecidas.

Figura 3. Opciones de actualización de posición.

Hasta este punto, se había cumplido con el objetivo propuesto para la convocatoria de AppLatina. Pero pensando en el uso de la aplicación por futuros usuarios, se decidió incluir otras opciones como:

  • Limpiar Mapa: Esta función permite borrar el Geofence para cancelar el envío de mensajes.
  • Mostrar Geofence: En caso de que la aplicación no despliegue el lugar de destino, esta opción permite dibujarlo nuevamente en el mapa.
  • Favoritos: Esta opción permite al usuario almacenar una zona de destino que frecuente mucho como Favorita para evitar búsquedas futuras hacia este mismo lugar. Por ejemplo: Casa, Trabajo, Universidad.
  • Buscar en mapa por nombre: Debido a que el desplazamiento por el mapa en busca de un lugar de destino retirado de la posición actual puede ser tedioso y complicado, esta función permite que el usuario escriba con detalle el lugar de destino o lugar de referencia cercano a este, junto a la ciudad y departamento, con esta información la aplicación lo llevará de forma automática a este lugar en el mapa.
  • Vista de mapa: El usuario puede alternar la vista del mapa entre satelital y normal.
  • Misceláneo: Esta opción se implemento para permitir cambiar el color del Geofence que por defecto es rojo.
  • Ayuda: La ayuda guía al usuario para hacer un uso correcto de la aplicación.

Usos de Sano y Salvo

La aplicación puede ser usada en distintos escenarios como por ejemplo:

  1. Para conocer la posición actual de los hijos y la ruta tomada hacia el colegio o cualquier otro destino en el que no cuentan con la compañía de los padres.
  2. Para realizar un rastreo de la ruta tomada por una persona que haya podido sufrir un accidente o secuestro.
  3. Para hacer Check-in automático en lugares a los que se planee ir sin importar la hora en que lo harán.
  4. Para avisar a las madres que se ha llegado sin inconvenientes al lugar de destino en días lluviosos.

Conclusiones

El desarrollo de esta aplicación fue una gran experiencia al saber que se tiene la oportunidad de llevar a cabo una idea en un tiempo relativamente corto y compitiendo contra otras grandes ideas para dos tipos de plataforma como Windows 8 y Android.

El conocimiento adquirido es invaluable y servirá como material de apoyo para un futuro libro sobre el uso de diferentes APIs.

 

 

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.