Sistema móvil para la oferta de recorridos con rutas
fijas
Christian Andrés Artieda Guachamin1
Megadatos - Netlife, Ecuador
kristian.ldu@gmail.com
https://orcid.org/0000-0001-5500-2511
Juan Sebastián Reza Morales2
Tata Consultancy Services, Ecuador
jsrezam@gmail.com
https://orcid.org/0000-0002-8318-3695
Henry Daniel Rojas Cisneros3
Biometrika Cloud Services, Ecuador
henry.red1@hotmail.com
https://orcid.org/0000-0001-8157-760X
Resumen
El presente trabajo busca generar una automatización mediante una aplicación móvil
con la cual los usuarios que cuenten con un vehículo, ofrezcan a las personas una opción
de viaje a sus destinos, basada en su ruta diaria y a un precio accesible. La idea surge de
la necesidad de que los usuarios conductores puedan tener un ingreso extra llevando
pasajeros dentro de su recorrido, y a su vez, los pasajeros puedan contar con una
aplicación alternativa más económica que les permita llegar más rápido a sus destinos
finales. Se utilizan herramientas que son tendencia actualmente, como Firebase para la
gestión de datos, Xamarin como principal en cuanto al desarrollo, debido a su gran
ventaja de reutilizar el mismo código para las plataformas de Android y IOS, como
complemento se utilizarán las APIs de Facebook y Google para brindar al beneficiario
una alternativa de inicio de sesión, y Google Maps para el despliegue de rutas en un
mapa. Los resultados evidencian que el sistema será una gran opción al momento de
gestionar la rutas.
Palabras clave: APIs, xamarin, android, ios, framework.
Abstract
This work seeks to generate an automation through a mobile application with which
users with a vehicle, offer people a travel option to their destinations, based on their
daily route and at an affordable price. The idea arises from the need for users to have an
extra income by carrying passengers within their route, and in turn, passengers can have
an alternative, cheaper application that allows them to reach their final destinations
faster. Tools that are currently a trend are used, such as Firebase for data management,
Xamarin as the main development tool, due to its great advantage of reusing the same
code for the Android and IOS platforms. As a complement, Facebook and Google APIs
will be used to provide the beneficiary with a login alternative, and Google Maps for the
display of routes on a map. The results show that the system will be a great option when
managing the routes.
Keywords: APIs, xamarin, android, ios, framework.
Introducción
En la actualidad, con el surgimiento de la pandemia por COVID-19, que afectó a todo el
mundo y obligó el cierre de varias empresas (Weller, 2020), además del aumento del
desempleo en todas las ciudades del mundo, ha generado que el uso de la tecnología
juegue un papel muy importante y crezca su demanda entre las personas para poder
continuar con sus trabajos de forma remota, precautelar la salud de los empleados,
comunicarse con sus familiares y facilitar la movilidad (Torres et al., 2020). Al
respecto, Reyes Rivera et al. (2020) agregan que el desarrollo tecnológico y el acceso a
grandes cantidades de información en la web han alcanzado un nivel sin precedentes en
la historia.
En Ecuador operan diferentes empresas que ofrecen el servicio de VTC (Vehiculos de
transporte con conductor) como son Uber (Sitio Oficial de Uber, n.d.), Cabify (Cabify,
n.d.), InDriver (InDriver, n.d.), entre otros. Estos servicios han crecido por el
surguimiento de la pandemia debido a que las personas, al permanecer en sus hogares,
utilizaron y utilizan diferentes plataformas para ir a sus trabajos, enviar paquetes o pedir
productos alimenticios, con la intención de prevenir el contagio. Cada servicio es
ofrecido a travez de aplicaciones móviles que son accesibles para todo usuario que
tenga acceso a un dispositivo móvil (Herrera, 2020).
El auge del desarrollo de aplicaciones moviles (Martinez, 2001) ha sido un factor
determinante para facilitar ciertas actividades que requerian que la persone realice esto
de forma presencial, por citar ciertos ejemplos los autores Burbano Ulloa et al. (2020)
realizan un análisis de las aplicaciones móviles en Ecuador y proponen una aplicación
movil para el control de mascotas, en cambio Reyes Rivera et al. (2020) desarrollan un
sistema móvil de compras en línea, este tipo de aplicaciones también puede influir en la
conciencia de las personas, asi lo demuestran Toasa et al. (2017) que crean una
aplicación móvil para concientizar a las personas sobre el uso de la energía eléctrica, y
para esto utilizan técnicas de gamificación.
Por lo mencionado anteriormente, el objetivo de este trabajo es ofrecer una nueva
oportunidad de empleo a los diferentes usuarios que posean un vehículo y a su vez
puedan ofrecer sus servicios a personas que puedan necesitarlo, esto mediante el
desarrollo de una aplicación móvil que permita a los usuarios ofrecer sus servicios de
conducción por medio de recorridos con rutas fijas, para cumplir esto se ha planificado:
definir el diseño de interfaces para la aplicación móvil, establecer rutas fijas a través de
un mapa que permite una mejor visualización, registrar usuarios utilizando sus perfiles
de redes sociales para agilitar su creación, validar la aplicación desarrollada en un
ambiente de pruebas simuladas.
Metodología
En el presente proyecto se utilizó la metodología Scrum (SCRUM Proyectos Ágiles,
n.d.), la cual permite realizar entregas parciales y regulares del producto final,
priorizadas por el beneficio que aportan al receptor del proyecto. Algo importante de la
metodología scrum es que para organiar las tareas y tiempos se basa en los principios de
KANBAN (Lage Junior & Godinho Filho, 2010).
En Scrum, un proyecto se ejecuta en ciclos temporales cortos y de duración fija. Cada
iteración tiene que proporcionar un resultado completo un incremento de producto final
que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo
solicite. Para este proyecto se decidió hacer iteraciones cada semana teniendo reuniones
al final de la misma.
2.1 Requerimientos
En la siguiente Tabla 1 se visualizarán la lista de requerimientos presentados para este
proyecto. Tabla 1.
Tabla de Requerimientos
Tabla de Requerimientos
Requerimientos
1
Realizar registro de conductores y pasajeros.
2
Realizar inicio de sesión o registro mediante redes sociales.
3
Visualizar las posibles rutas que ofertan los diferentes conductores.
4
Activar de forma manual la oferta de ruta del conductor hacia los pasajeros.
5
Verificar el historial de los viajes realizados por el pasajero y el conductor.
6
Realizar un control del viaje al inicio y al final del recorrido.
Fuente: elaboración propia
2.2 Roles e integrantes
Mientras que en la Tabla 2 se evidencia el equipo encargado del desarrollo de este
proyecto. Tabla 2.
Tabla de Scrum Team
Scrum Team
1
Sebastian Reza
Scrum Master / Development Team
Member
2
Christian Artieda
Development Team Member
3
Henry Rojas
Development Team Member
2.3 Iteracciones (Sprints) Fuente: elaboración propia
Para la construcción se ejecutaron los siguientes 4 sprint con el siguiente detalle:
Figura 1. Lista de sprints ejecutados con Azure DevOps.
Fuente: elaboración propia
Primer Sprint
El primer sprint fue ejecutado del 19 al 25 de octubre de 2020, cubriendo tareas
fundamentales para asentar una arquitectura escalable y mantenible, siendo esto un hito
fundamental para las siguientes iteraciones donde se fue agregando funcionalidad a la
aplicación.
Estas tareas comprenden el diseño e implementación de las clases e interfaces que
tienen la responsabilidad de comunicarse con Firebase database para persistir la data en
esta plataforma, como punto clave también se creó el repositorio en Github para el
manejo y control de código fuente, con esta tarea ejecutada fue posible repartir el
trabajo al equipo de desarrollo. Otro punto importante fue la implementación del
módulo de inicio de sesión y registro en la aplicación con los patrones GUI que ofrece
Xamarin.
En la Figura 2 se detallan las tareas que conformaron el backlog del primer sprint del
proyecto.
Figura 2. Backlog para el primer sprint en Azure DevOps.
Fuente: elaboración propia
Segundo Sprint
El segundo sprint fue ejecutado del 26 de octubre al 1 de noviembre de 2020, el
objetivo principal de esta iteración fue trabajar en la navegabilidad fundamental
visionada para cumplir con el propósito del negocio que plantea la aplicación, lo cual
involucró el diseño de las pantallas para la selección de la ruta del conductor y las
pantallas para la selección de los viajes ofertados para el pasajero, consecuentemente
también se diseñaron las pantallas para que el usuario de la aplicación, sea pasajero o
conductor, pueda observar su historial de viajes realizados en la aplicación.
Otro reto para este sprint, fue la persistencia de los viajes ofertados en Firebase
database, tomando en cuenta todas las validaciones necesarias para que la información
se almacene de forma íntegra y consistente en tiempo real.
Por último, para este ciclo se llevó a cabo la implementación de la autenticación con las
APIs de Facebook y Google.
En la Figura 3 se pueden ver las tareas que conformaron el backlog del segundo sprint
del proyecto.
Figura 3. Backlog para el segundo sprint en Azure DevOps.
Fuente: elaboración propia
Tercer Sprint
El tercer sprint fue ejecutado del 4 al 8 de noviembre del 2020, siendo una iteración
crítica para concretar el core de la aplicación. En este sprint se implementó el manejo de
roles de pasajeros y conductores.
Terminado el manejo de roles, se finalizó con todas las funcionalidades tanto del
conductor, como del pasajero, estas se establecieron como la oferta de las ruta fijas,
manejo de los pasajeros propuestos en el viaje e inicio y finalización del viaje.
En la Figura 4 se evidencian las tareas que conformaron el backlog del tercer sprint del
proyecto.
Cuarto Sprint
Figura 4. Backlog para el tercer sprint en Azure DevOps.
Fuente: elaboración propia
El cuarto y último sprint fue ejecutado del 12 al 18 de noviembre de 2020, este último
ciclo se concretó en la eliminación de diferentes bugs encontrados en las pruebas
internas y en implementar funcionalidades finales como la implementación y diseño de
pantallas para la consulta del perfil y viajes realizados por pasajeros y conductores.
El principal objetivo que se alcanzó en este último sprint fue la sincronización del
ingreso o salida de un pasajero en los viajes, al igual que la actualización de la lista de
viajes disponibles para el pasajero, finalizando de igual manera con la sincronización
entre el conductor y pasajero al momento de culminar o comenzar un viaje.
En la Figura 5 se detallan las tareas que conformaron el backlog del cuarto sprint del
proyecto.
Figura 5. Backlog para el cuarto sprint en Azure DevOps.
Fuente: elaboración propia
2.4 Herramientas de desarrollo
En este proyecto se utilizaron las herramientas de desarrollo de Xamarin (Xamarin |
Open-Source Mobile App Platform for .NET, n.d.), en el IDE Visual Studio (IDE de
Visual Studio, Editor de Código, Azure DevOps y App Center - Visual Studio, n.d.) que
va a permitir realizar la codificación, además de realizar las diferentes pruebas en
dispositivos móviles.
Previo al inicio del desarrollo se debe realizar la creación y configuración de las
diferentes APIs con las que el proyecto va a funcionar. Estas son:
Creación de Proyecto Firebase.
Creación de API Key para mapas de Google.
Creación de Proyecto Facebook.
En las Figuras 6, 7, 8, 9 y 10 se puede visualizar el proceso de creación del proyecto en
Firebase para la administración de usuarios y el almacenamiento de información.
Figura 6. Consola de administración de
proyectos
Fuente: elaboración propia
Figura 7. Creación de proyecto en Firebase
Fuente: elaboración propia
Figura 8. Creación de proyecto Firebase
Fuente: elaboración propia Figura 9. Creación de proyecto Firebase
Fuente: elaboración propia
Figura 10. Consola de administración del proyecto creado
Fuente: elaboración propia
En las Figuras 11, 12 y 13 se puede visualizar la generación del API Key para el manejo
de mapas de Google para la plataforma Android, asociado al proyecto Firebase con el
cual va a funcionar la aplicación.
Figura 11. Selección de proyecto de Firebase
Fuente: elaboración propia
Figura 12. Habilitación de API de mapas para Android
Fuente: elaboración propia
Figura 13. Consola de administración de credenciales de APIs y servicios del API Key creado para la
plataforma Android.
Fuente: Fuente: elaboración propia
En las Figuras 14, 15, 16, 17 y 18 se puede ver la creación del proyecto en la plataforma
de Facebook for Developers, para la aplicación móvil que va a permitir utilizar el inicio
de sesión por medio de esta red social.
Figura 14. Creación de proyecto en Facebook for Developer.
Fuente: elaboración propia
Figura 15. Configuración inicial de proyecto en Facebook for Developer.
Fuente: elaboración propia
Figura 16. Panel de administración de proyecto en Facebook for Developer.
Fuente: elaboración propia
Figura 17. Adición de la plataforma Android en Facebook for Developer.
Fuente: elaboración propia
Figura 18. Nombre del paquete Android configurado en el proyecto de Facebook.
Fuente: elaboración propia
En el proyecto de Xamarin, para que todas estas APIs funcionen correctamente
requieren de la instalación de los siguientes paquetes:
FirebaseDatabase.net
Xamarin.Forms.Maps
Plugin.FacebookClient
Xamarin.GooglePlayServices.Auth
En las Figuras 19, 21, 21 y 22 se pueden visualizar los diferentes paquetes que se
incluyeron en el proyecto de Xamarin, previo a su instalación.
Figura 19. Instalación de Paquete
FirebaseDatabase.net
Fuente: elaboración propia
Figura 21. Instalación Paquete
Xamarin.Forms.Maps
Fuente: elaboración propia
Figura 20. Instalación de Paquete
Plugin.FacebookClient
Fuente: elaboración propia
Figura 22. Instalación de Paquete
Xamarin.GooglePlayService.Auth
Fuente: elaboración propia
Al finalizar su respectiva instalación y configuración dentro del proyecto se procede a
resolver posibles errores y empezar con la codificación del proyecto.
Resultados
El resultado principal de este trabajo es una aplicación informática para dispositivos
móviles, misma que fue validada mediante diferentes pruebas, como:
3.1 Pruebas funcionales
En el presente proyecto se realizaron pruebas funcionales de la aplicación móvil con el
fin de cumplir los requisitos propuestos y validar que la aplicación funcione
correctamente.
En la Figura 23 se puede observar la pantalla de inicio de la aplicación donde el usuario
podrá acceder al aplicativo móvil por medio de sus credenciales o usando la autenticación
de Google o Facebook.
Figura 23. Pantallas de inicio.
Fuente: elaboración propia
En las Figuras 24 y 25 se ve la pantalla de registro de usuarios tanto para pasajeros,
como para conductores, estos ingresan su información personal, adicionalmente
únicamente los conductores ingresan la información de su vehículo, para ambos tipos de
usuarios se utiliza un correo electrónico y una contraseña como credenciales de ingreso.
Figura 24. Pantallas de registro para datos
personales.
Fuente: elaboración propia
Figura 25. Pantallas de registro para
credenciales.
Fuente: elaboración propia
La primera parte de pruebas funcionales fueron realizadas a estas primeras pantallas, lo
que permitió validar el registro de usuarios y su ingreso a la aplicación utilizando
credenciales o autenticación por redes sociales. Esto permitió corregir errores y posibles
problemas con los flujos de funcionamiento.
3.2 Pantallas de conductor
En las Figuras 26, 27 y 28 se visualizan las pantallas que tendrá el conductor al iniciar
sesión en la aplicación. El conductor podrá realizar: la oferta de su ruta a los pasajeros,
ver su perfil de usuario con su información personal y un historial de viajes realizados.
Figura 26. Pantalla de postulación de viaje.
Fuente: elaboración propia Figura 27. Pantalla de perfil.
Fuente: elaboración propia
Figura 28. Pantalla de historial de viajes.
Fuente: elaboración propia
En las Figuras 29 y 30 corresponden a la pantalla del viaje ofertado por el conductor y
se mantiene a la espera de los pasajeros. Se muestra información referente al viaje, así
como botones de acción para iniciar o finalizar el viaje.
Figura 29. Pantalla de viaje postulado sin
iniciar.
Fuente: elaboración propia
Figura 30. Pantalla de viaje postulado iniciado.
Fuente: elaboración propia
3.3 Pantallas de pasajero
En las Figuras 31, 32 y 33 se observan las pantallas que tendrá el pasajero al iniciar
sesión en la aplicación. El pasajero podrá: visualizar los viajes que ofrecen los
conductores, ver su perfil de usuario con su información personal y un historial de
viajes realizados.
Figura 31. Pantalla de viajes ofertados.
Fuente: elaboración propia Figura 32. Pantalla de perfil.
Fuente: elaboración propia
Figura 33. Pantalla de historial de viajes.
Fuente: elaboración propia
En la Figura 34 se muestra la pantalla de visualización del viaje que ofrece un
conductor con mayor detalle y decidir si desea o no aceptar dicha oferta. En la Figura
35 se observa la pantalla de un viaje aceptado por el pasajero, esta permanece visible
durante el transcurso del viaje hasta que el conductor termine el viaje.
Figura 34. Pantalla detalle del viaje ofertado.
Fuente: elaboración propia Figura 35. Pantalla de viaje aceptado.
Fuente: elaboración propia
La segunda parte de pruebas funcionales fueron realizadas a las pantallas de conductor y
pasajero, lo que permitió realizar un flujo completo desde la oferta del viaje hasta su
finalización, esto facilitó la corrección de errores y garantizó que la funcionalidad del
aplicativo es la adecuada para los usuarios.
Conclusiones
Con el desarrollo de este proyecto, que tuvo como finalidad ayudar a mejorar el sistema
de movilización. InTrip permite ofrecer a conductores la oportunidad de brindar una
ruta de viaje con su vehículo, apoyando así a su economía y a pasajeros a llegar a sus
destinos mucho más rápido, y por un precio más accesible.
La utilización de la metodología Scrum ayudó a que se administren correctamente los
tiempos para cada iteración del proyecto y de existir inquietudes se las resuelva
fácilmente. Esto también fue apoyado por el compromiso del equipo de trabajo en el
desarrollo del trabajo.
Como parte de las conclusiones, tenemos que la aplicación de la plataforma Firebase
que ofrece Google resultó como una herramienta muy útil que dispone de un excelente
manejo de datos en tiempo real, reduciendo significativamente el tiempo de desarrollo,
esfuerzo en la construcción y despliegue de APIs para el manejo de datos.
En el ámbito económico, el uso de Firebase resulta una buena opción para aplicaciones
de baja y media transaccionalidad, ya que resulta ser bastante conveniente tomando en
cuenta todo el esfuerzo, tiempo y dinero que implica levantar una estructura propia.
A su vez, la utilización de mapas de Google permite ofrecer al usuario una mejor
experiencia visual sobre la ruta ofrecida por los conductores, lo cual es un recurso muy
importante en aplicaciones de movilidad.
Además que, se evidenció que utilizar Xamarin como herramienta de desarrollo móvil
ofrece la posibilidad de crear aplicaciones para las dos plataformas móviles más usadas:
Android y IOS, lo que permitió ahorrar tiempo y esfuerzo que se pierde al desarrollar en
sus herramientas nativas.
Referencias
Burbano Ulloa, E. A., Constante Molina, M. A., Hidalgo Guamán, L. M., & Moya
Chiluiza, F. A. (2020). Prototipo móvil para la geolocalización de mascotas
callejeras. REVISTA ODIGOS, 1(3), 7796.
https://doi.org/10.35290/ro.v1n3.2020.372
Cabify. (n.d.). Retrieved November 26, 2020, from https://cabify.com/ec
Herrera, X. E. (2020). YACHANA REVISTA CIENTÍFICA. YACHANA Revista
Científica, 9(1), 5767.
http://revistas.ulvr.edu.ec/index.php/yachana/article/view/623/361
IDE de Visual Studio, editor de código, Azure DevOps y App Center - Visual Studio.
(n.d.). Retrieved November 26, 2020, from https://visualstudio.microsoft.com/es/
inDriver. (n.d.). Retrieved November 26, 2020, from https://indriver.com/es/city
Lage Junior, M., & Godinho Filho, M. (2010). Variations of the kanban system:
Literature review and classification. International Journal of Production
Economics, 125(1), 1321. https://ideas.repec.org/a/eee/proeco/v125y2010i1p13-
21.html
Martinez, E. (2001). La evolución de la telefonía móvil. Revista RES, 1, 16.
Reyes Rivera, A. J., Vallejos Cango, M. de L., & Quintana García, D. A. (2020). Nueva
realidad: compras en línea y a domicilio. REVISTA ODIGOS, 1(3), 4760.
https://doi.org/10.35290/ro.v1n3.2020.370
SCRUM Proyectos Ágiles. (n.d.). Retrieved November 26, 2020, from
https://proyectosagiles.org/que-es-scrum/
Sitio oficial de Uber. (n.d.). Retrieved November 26, 2020, from
https://www.uber.com/global/es/sign-in/
Toasa, R., Silva, C., Silva, C., Goncalves, D., Neves, L., & Marcelino, L. (2017).
Energy consumption behaviour characterization with mobile gamification. Iberian
Conference on Information Systems and Technologies, CISTI.
https://doi.org/10.23919/CISTI.2017.7975900
Torres, A. G., Quevedo, J. M., García, S. G., & de la Rosa, C. S. J. (2020). El
coronavirus en el ecosistema de los dispositivos móviles: creadores, discursos y
recepción - Dialnet. Revista Latina de Comunicación Social.
https://dialnet.unirioja.es/servlet/articulo?codigo=7625679
Weller, J. (2020). La pandemia del COVID-19 y su efecto en las tendencias de los
mercados laborales. CEPAL. www.cepal.org/apps
Xamarin | Open-source mobile app platform for .NET. (n.d.). Retrieved November 26,
2020, from https://dotnet.microsoft.com/apps/xamarin