Aplicación móvil de reporte de horas

By 4 enero, 2016 Sin categoría No Comments

En Carver utilizamos una aplicación web para el reporte del consumo de horas por los técnicos en cada uno de los proyectos y tareas asignadas.

Hasta ahora el técnico, a través de un formulario web, entra el consumo en horas dedicado a la tarea asignada en un momento en concreto.

Normalmente esta entrada no se hace en el momento del trabajo sino días más tarde cuando mensualmente vence el plazo de presentación del informe. Esto da lugar a inexactitudes y olvidos.

Para evitar estos problemas, hemos diseñado y construido una herramienta de reporting automático. Teniendo en cuenta que muchos de nuestros técnicos trabajan fuera de nuestras oficinas, nos decidimos por una aplicación que se pudiera ejecutar en un dispositivo móvil, eligiendo el desarrollo en Android ya que la gran mayoría de ellos tiene teléfonos con este sistema operativo.

La aplicación presenta a cada técnico la lista de tareas que tiene asignadas. La autenticación del técnico se hace automáticamente a través de su número de teléfono, al cual la aplicación tiene acceso. Con la lista en pantalla, el técnico tiene dos opciones para cada una de las tareas normales, reportar manualmente el número de horas a través de un formulario o entrar en modo automático; a partir de este momento la aplicación llevará una cuenta de las horas dedicadas que serán reportadas de forma automática cuando el técnico dé, mediante la aplicación, la tarea como acabada. Para evitar errores y olvidos, la aplicación reporta unas horas predeterminadas a cualquier tarea no finalizada en un momento del día determinado, ambos valores son configurables. Las tareas especiales tales como vacaciones, permisos, etc. solo pueden reportarse de forma manual. La aplicación permite corregir, mediante un formulario, cualquier reporte incorrecto.

La aplicación móvil está desarrollada con la API de Android. La aplicación host se ha modificado para publicar una serie de web services de tipo restful que permiten el acceso remoto. Esta modificación fue muy sencilla al ser una aplicación desarrollada con CarverMVC y existir un modelo de clases muy definido.

La aplicación Android ejecuta los web services de la aplicación host, serializando y deserializando parámetros y resultados a través del formato estándar JSON. En el caso del host serialización y deserialización, las lleva a cabo automáticamente las librerías de Spring, en el caso de la aplicación Android  se hace manualmente a través de la librería Jackson de Codehaus. En cualquier caso tanto en la aplicación host como en la móvil se utiliza el mismo modelo de clases lo que significó una gran ventaja en el desarrollo.

Este tipo de desarrollos son extrapolables a infinidad de aplicaciones de cualquier sistema operativo móvil, y están especialmente indicados para aquellos casos en que se necesita un buen nivel de ubicuidad en el manejo de las mismas.