Aprendiendo Wails con Go

·Desarrollo

Buen día, hoy les comparto mi experiencia aprendiendo Go + Wails haciendo un proyecto. Wails es un framework para crear aplicaciones de escritorio nativas usando Go.

Mi objetivo es crear aplicaciones de escritorio para ofrecer a negocios que ocupen este tipo de software y no quieran depender de soluciones web.

Por qué Wails

Investigando me topé con Wails porque usa Go para el backend y te deja utilizar el framework de frontend que más te guste o conozcas. En mi caso elegí Vue, que es con el que tengo más experiencia, así podía enfocarme más en el backend.

El stack que he estado utilizando es Nuxt con SQLite para aplicaciones fullstack. Con este stack construí Kontrolfit, una aplicación web para la gestión de gimnasios.

Quería crear una aplicación de escritorio para ofrecer una solución de un solo pago que funcionara en Windows, el sistema más usado por este tipo de negocios. Así que decidí que para aprender Wails pasaría el proyecto de Nuxt a Wails.

Cómo lo aprendí

Puse el proyecto en la misma carpeta donde está mi proyecto de Nuxt. En este punto decidí usar IA para ayudarme a ir pasando el proyecto, preguntando por cada duda que tenía y para entender mejor cómo funciona Wails.

Previamente ya había tomado cursos de Go para entender la sintaxis y la estructura del lenguaje, así que me sentía cómodo antes de comenzar. Lo que no acababa de entender se lo preguntaba a la IA. Para esto no he gastado en ninguna suscripción a ningún servicio de IA, me apoyé en los modelos gratuitos que ofrece opencode.

Lo primero que hice fue crear un plan para pasar el proyecto de Nuxt a Wails, listando en orden las funcionalidades que quería implementar y explicando cada una de forma detallada. Para esto creé un archivo AGENTS.md que describía lo que tenía que ir haciendo en cada paso.

Al principio iba haciendo las cosas manualmente para saber dónde se ponía el código, cómo se mandaban a llamar las funciones y cómo se estructuraba el proyecto. Una vez que tuve comprensión de cómo funciona Wails, le pedía a la IA que pasara el proyecto funcionalidad por funcionalidad y yo las iba revisando, verificando que todo funcionara correctamente.

Base de datos e impresora

Al principio estaba usando consultas SQL directas para la base de datos, consultas, migraciones, etc. Después me pasé a GORM, un ORM que facilita la interacción con la base de datos y para el proyecto va bien.

Aprovechando Go, también permite comunicarse con el hardware. Usé mi impresora térmica para la impresión de tickets del sistema. A esta parte le agregué una sección de configuración para que detecte la impresora, y funciona de forma correcta tanto en Windows como en Linux.

Resultado

Así fue como aprendí Wails para hacer aplicaciones de escritorio, aprovechando los conocimientos que ya tenía y otros nuevos que aprendí. Con herramientas de IA el aprendizaje y el construir cosas es más rápido.

Kontrolfit Desktop funciona de buena forma. Para la distribución también creé un instalador, este se activa únicamente con una clave que genero y el programa valida para una sola computadora. De esta forma se evita que la aplicación sea utilizada en múltiples computadoras.