¿Cómo hemos desarrollado SignADoc Mobile?

Raúl Tribaldos, Pedro Cabo y Antonio J. Lucia, Software Engineers en EDICOM, nos cuentan el proceso de desarrollo de SignADoc Mobile desde la creación del diseño hasta la seguridad pasando por las tecnologías empleadas.

    Artículo elaborado por:

    Antonio J. Lucia

    Ingeniero de software

    Desarrollador web especialista en aplicaciones basadas en Java EE y Javascript. Experto en frameworks de código abierto como Angular e Ionic.

    Pedro Cabo

    Ingeniero de software

    Desarrollador multiplataforma especializado en web con frameworks como Angular e Ionic.

    Raúl Tribaldos

    Ingeniero de software

    Desarrollador de software en continua evolución. Amante de la naturaleza, la familia y el deporte.

EDICOMSignADoc es la solución desarrollada por EDICOM para la aprobación de documentos con firma electrónica y que busca terminar con la problemática derivada de la gestión de documentos por medios tradicionales como el papel o el correo electrónico.

La aplicación está diseñada para crear cuantos flujos de aprobación se precisen para administrar la firma de nuestros documentos electrónicos: sencillos, con un único aprobador, o procesos más complejos con múltiples aprobadores adaptados a la criticidad de cada documento.

Proyecto

Con la app hemos querido mejorar la experiencia de los destinatarios de dichos documentos. Es nuestra apuesta para que en unos sencillos pasos puedan firmar sus documentos de forma rápida y segura.

El desarrollo de la aplicación comienza con el primer mockup del proyecto o lo que es lo mismo una previsualización (pantalla a pantalla) del producto final por parte de diseño junto con el responsable del proyecto. Es la tarea inicial que impulsa el resto de tareas técnicas.

Este trabajo previo facilita la creación de las tareas mínimas necesarias para la primera versión de test de la aplicación. El resto de tareas que se van creando a posteriori casi siempre son derivadas de problemas nuevos que van surgiendo, como por ejemplo, para ajustar algún comportamiento distinto entre plataformas (en nuestro caso iOS o Android).

En el Departamento de Desarrollo de EDICOM estamos acostumbrados a trabajar aplicando la metodología ágil de Scrum. Cuando surgió el proyecto de SignADoc app ya teníamos comprometida una fecha de entrega con nuestro primer cliente por lo que Scrum era idóneo para realizar entregas parciales mientras se definía con el cliente los requisitos del producto final.

Firmas mancomunadas y solidarias

  • Firmas mancomunadas. El avance en el workflow exige la aprobación por parte de todos los aprobadores identificados en un paso.
  • Firmas solidarias. El avance en el workflow exige la aprobación de un número determinado de destinatarios sobre el total de los posibles aprobadores de un paso.

Autenticación y gestión de evidencias

EDICOMSignADoc se adapta a las particularidades en cuanto a autenticación y firma electrónica de cada proyecto.

  • Firma de la plataforma. Generadas por la solución, aportan trazabilidad y seguridad a todo el proceso de aprobación.
  • Doble factor de autenticación. Procesos de autenticación robustos para dar las mayores garantías a sus workflows: 2FA OTP (Google Autenticator) o 2FA por SMS.
  • Firma de usuario. Firma de los aprobadores a partir de certificados electrónicos expedidos a su nombre (certificados reconocidos, certificados no reconocidos, dispositivos seguros de creación de firma).
  • Control total sobre el ciclo de vida de los documentos. Permite establecer límites temporales para conseguir la aprobación de sus documentos, controlar en cada momento el estado en el que se encuentran todos los documentos enviados, forzar el reenvío o cancelar un documento cada vez que lo requiera.

Tecnologías

Ionic

Para el desarrollo de SignADoc app se optó por usar Ionic, que es uno de los framework más populares para la creación de aplicaciones móviles, integrado con Angular, que ya era nuestro framework estándar en otras aplicaciones web de EDICOM. Esta combinación es conocida con la nomenclatura @ionic/angular.

Si hablamos de la parte técnica, una aplicación móvil basada en Ionic no difiere mucho del desarrollo de una aplicación web ya que es el propio framework el que proporciona componentes web optimizados para dispositivos móviles, así como un API Nativa (Cordova y Capacitor) para la gestión de los dispositivos. Por tanto, es normal que haya requerido la colaboración de miembros con perfil de frontend para el diseño de la interfaz de usuario y con perfil de backend para el diseño de la lógica y ejecución de las acciones.

https://ionicframework.com/

https://ionicframework.com/docs/components

Deeplinks

Una de las necesidades que tenía la aplicación era la interconexión entre una notificación vía mail y la aplicación. Mediante un plugin de Cordova implementamos dicha funcionalidad, así al hacer click sobre un mail de notificación se lanza la aplicación, llevando al punto de la firma.

Access → login o enrollment.

Access → renewpassword

i18n. A través de un submódulo en git, podemos controlar las traducciones.

Visita virtual

Ya conocemos algunas de las características de EDICOMSignADoc y ahora es el momento de dar un paseo virtual por su versión móvil.

Lo primero que vamos a visitar es su punto de entrada, ya que si es la primera vez que usas esta app tendrás que registrarte. EDICOMSignADoc ofrece un enrollment muy intuitivo para que realices todos los pasos necesarios de registro sin ningún problema.

O bien si ya eres un usuario registrado podrás acceder a la aplicación desde la página de login indicando tus credenciales.

La organización de los documentos es de lo más intuitiva, ya que EDICOMSignADoc cuenta con dos secciones: Pendientes (todos los documentos en los que se requiere alguna acción) y Revisadas (Todos los documentos que no requieren ninguna acción por tu parte). Además, a estas dos secciones podrás aplicarle muchos filtros y ordenación por campos, por lo que no te resultará difícil encontrar el documento que andas buscando.

En cuanto a la firma o al rechazo del documento podremos acceder al documento en cuestión ya sea desde este grid o mediante un enlace que nos llegará al correo electrónico con un link redirigiéndonos al documento en cuestión. Una vez en él, podremos visualizar el pdf e incluso completar campos del propio pdf si los tuviera, configurar la firma para aceptar el documento y añadir observaciones al mismo.

Seguridad

Para dar mayor seguridad a la firma de tus documentos EDICOMSignADoc nos permite aplicar métodos de doble factor de autenticación (2FA), hoy en día habituales como son por código OTP o por mensaje SMS:

Además todas las conexiones entre la app y el backend van a través del protocolo Https, el cual permite establecer una conexión segura que no puede ser interceptada por personas no autorizadas.

Publicación apk

Android: https://play.google.com/store/apps/details?id=com.edicom.signadoc&gl=ES

IOS : https://apps.apple.com/es/app/signadoc/id153591803