AutoFirma
Diseño con Empatía: Explorando el Vibe Coding para una Experiencia de Usuario mejorada
Table of Contents
1. Humanizando AutoFirma mediante Vibe Coding (con Antigravity)
Hace un tiempo realicé modificaciones de forma manual sobre la aplicación AutoFirma para hacerla más usable. Ahora voy a intentar realizar esos cambios pero usando vibe coding, en concreto usando antigravity. Esto muestra grandes posibilidades para adaptar aplicaciones, que sean de código abierto, a nuestras necesidades.
1.1. Clonar el proyecto
En primer lugar, clonamos el proyecto con el código fuente:
git clone https://github.com/ctt-gob-es/clienteafirma/
Compruebo en la página de AutoFirma cuál es la última versión, y hago un checkout de ese tag:
cd clienteafirma
git checkout v1.9_RC
Cambio al directorio donde está el fuente que vamos a modificar y lanzo antigravity:
cd afirma-simple
antigravity .
1.2. Modificación del código mediante prompts
Ahora vamos a ir solicitando los cambios que queremos que realice antigravity en el proyecto.
El primero de ellos es que haga más grande (para humanos) el panel donde se muestra dónde queremos colocar la firma:
Este proyecto es una aplicación Java para firmar digitalmente PDFs. El problema es que el panel donde se muestra el PDF a fin de seleccionar dónde se coloca la firma es muy pequeño. Analiza qué cambios habría que hacer para que fuese más grande.
El segundo de ellos, es que en lugar de poner signed en el nombre del PDF que genera, que ponga mis iniciales (cambia XXX por lo que consideres):
También quiero el sufijo XXX en lugar del actual, signed, en el nombre del PDF generado con la firma.
Solicito también que cambie la versión de una de las dependencias (ya que al generar el jar me ha dado un error). Esto lo hago con antigravity por comodidad, lo podría cambiar a mano.
Cambia la versión 1.6.1-SNAPSHOT de la dependencia de Java Websocket por la versión 1.6.0 en el pom.xml
Acepto los cambios que propone.
1.3. Generar la aplicación en un contenedor con Maven
Ahora vamos a generar el fichero jar usando un contenedor con Maven. Lanzo el contenedor y monto el directorio con el proyecto clonado (que tiene los cambios realizados):
docker run --name afirma --rm -it -v ./clienteafirma/:/app maven:3.9.12-eclipse-temurin-21-alpine /bin/bash
En la shell del contenedor ejecutamos:
cd /app
mvn clean install -DskipTests
mvn clean install -Denv=install -DskipTests
Copiamos, el jar generado, desde el contenedor a un directorio de nuestro sistema:
docker cp afirma:/app/afirma-simple/target/autofirma.jar MiAutoFirma.jar
Probamos la aplicación:
java -Djdk.tls.maxHandshakeMessageSize=50000 -jar MiAutoFirma.jar
Finalmente, habría que sustituir el jar original por el que hemos generado (en Linux el jar está en /usr/lib/AutoFirma/).
1.4. La comparación
Esta es una captura de la versión original:
Esta es la versión modificada:
Como se puede observar, hemos pasado de una escala del 48% a una escala de 66%. Hemos conseguido hacer más usable esta aplicación en unos minutos.