Xamarin y Captio resolviendo el sumidero de tiempo que supone “pasar los gastos”

Por las características de nuestro trabajo, tanto yo, como el resto de mis compañeros del departamento de DX España viajamos mucho. Sin ir más lejos, en seis últimos días laborables he ido a cuatro ciudades: Sevilla, Valencia, Ciudad Real y Santander.  Tres viajes han sido de ir y volver el mismo día y en uno, por la combinación de transportes, he tenido que pasar una noche fuera.

captioEn cada viaje se originan un mínimo de ocho gastos, con sus ocho tickets, y eso si no tenemos que hacer más desplazamientos dentro de la misma ciudad. 

A veces podemos pagar con la tarjeta de empresa, otras veces con esa tarjeta no, pero la tuya personal sí, y otras simplemente el taxista o el bar de menú que pillamos no tienen ni datafono.

Tickets de caja, tickets de impresora sin tinta, tickets a mano, tickets con unos numerajos indescifrables que parece que los han escrito médicos.

Y un par de días al mes los dedicas por completo a escrutar, ordenar, fotografiar, introducir en la herramienta y hacer un informe de cada viaje y todos sus tickets, grapados, clasificados y organizados.

Miles de horas de miles de empleados en todos los puntos del planeta malgastados en una tarea tan improductiva.

Solución

Esta situación con la que nos enfrentamos en nuestro día a día y que personalmente sufrimos, es la que solventa Captio, integrando la administración de gastos en un flujo sin papel que elimina todas estas tareas manuales y que ayuda a prevenir el fraude y simplificando nuestro trabajo, detectando gastos duplicados, comprobando días, verificando los movimientos en la tarjeta de empresa y con la posibilidad de personalizar el proceso con las reglas de negocio de cada compañía.

Usando Xamarin

captio-appCon el fin de que esta aplicación llegue al mayor número de usuarios posibles, Captio ha desarrollado la solución utilizando Xamarin. Recientemente, a raíz de una colaboración conjunta con nuestro departamento, han lanzado una nueva versión en la que han migrado todo el código a Xamarin.Forms y además a reestructurado su arquitectura en Azure, pasando de una solución monolítica, con problemas de rendimiento, a una solución PaaS más flexible. Además se ha añadido Redis y Service Bus.

Este trabajo ha permitido la publicación del caso de éxito técnico en este repositorio de github oficial de Microsoft.

Ventajas del uso de Xamarin en el caso de Captio

En la siguiente versión se ha reducido la cantidad de código, que hacen la aplicación más fácil de mantener a la vez que se han disminuido la probabilidad de funcionalidades extrañas en algunas parte del código que ha desaparecido al re factorizar.

Tenemos un nuevo diseño, una nueva navegación que mejora la experiencia de usuario, y que al unificar la Interfaz de Usuario, unifica la apariencia en todas las plataformas, incrementando la eficiencia de los tests.

blog_from_nice_to_needXamarin.Forms les ha permitido personalizar de forma más eficiente las aplicaciones para adaptarse a las necesidades de diseño de los clientes, a los colores y estilos corporativos de las empresas que usan la aplicación.

Además, se han añadido otras mejoras como Notification Push, que informan al usuario cuando su ticket o su informe ha sufrido algún cambio en su estado (ha sido aprobado, rechazado, etc…).

 

Migrando de Xamarin classic a Xamarin.Forms

Xamarin.Forms permite a los usuarios compartir no sólo el código de la lógica de negocio, sino también la interfaz de usuario y las llamadas a las API del dispositivo. Pero además, hace más fácil introducir un control nativo personalizado, en el caso de ser necesario para alguna plataforma en concreto.

lectura-datosEl proceso comienza fotografiando los tickets.

Entonces estos pasan por un proceso de reconocimiento automático donde se extraen datos necesarios gracias a un sistema de OCR.

Las datos del informe son guardados en una base de datos en Azure, incluyendo y la fotografía del propio ticket también, para posteriores comprobaciones.

El proceso continuará de forma digital a través del flujo de aprobación personalizado para cada empresa.

También se ha añadido un recortado automático de la foto, que optimiza el almacenamiento de la imagen. Todo ello, accediendo a la cámara a través del Media Plugin (que unifica el acceso a las APIs específicas de cada plataforma).

Código que se puede probar mejor

El uso de Xamarin.Forms ha permitido mejorar el porcentaje de código cubierto con tests, ya que la Interfaz de Usuario compartida, hace que los test sean escritos sólo una vez y utilizados en todas las plataformas.

También el patrón de diseño MVVM ayuda a que el código pueda ser testeado mejor, no sólo en forma de test unitarios, también es más fácil de crear mocks y test de funcionalidad.

Hemos reducido el número de líneas escritas en lenguajes nativos para cada plataforma, en un gran porcentaje. Para esto ha ayudado el hecho de que Captio no tenga pantallas muy complejas con grandes animaciones, así que no requerían controles de usuario personalizados.

Los test de rendimiento con respecto a la versión en Xamarin Classic han mejorado también notablemente.

Si quieres leer nuestra experiencia y el caso de éxito con Captio completo, puedes hacerlo aquí.