Este artículo es una demostración sobre cómo poder montar una aplicación web que usa VueJS del lado del cliente (con la vue cli), Go/Golang del lado del servidor y PostgreSQL como base de datos.
Vamos a montar el proyecto web en un teléfono móvil con Android, usando la app Termux. Todo estará ejecutándose en Android, ya que se usará para programar.
Es decir, tendremos a node vigilando los archivos js, a go compilando en el lado del servidor y a PostgreSQL almacenando los datos.
¡Vamos allá!
Requisitos
Comienza instalando la app de Termux. Después, instala NodeJS en Android, más tarde instala PostgreSQL en Android y finalmente instala go con:
pkg install golang
Además de los lenguajes de programación / compiladores / intérpretes necesitamos otras utilidades como git:
pkg install git
Clonando repositorio
Tengo mi proyecto en un repositorio de GitHub así que lo primero que hice fue clonarlo con:
git clone https://github.com/usuario/proyecto
Así como se ve en la siguiente imagen:
Una vez que estuvo listo ingresé al directorio del repositorio.
Instalar dependencias de node
Para generar el JavaScript y todo lo necesario del lado del cliente necesitamos algunas dependencias. Además, mi proyecto usa Buefy.
Gracias al archivo package.json simplemente ejecuté:
npm install
Y esperé a que estuviera terminado.
Con eso ya tenía lo necesario para el lado del cliente.
Instalación de dependencias de Go
En el lado del servidor también necesité algunos paquetes de Go; todavía no uso dep, así que me tocó hacerlo manualmente.
Algunos paquetes usados fueron gorilla, gorm, entre otros. Cada paquete se instala con go get ruta_paquete
como se ve en la imagen:
Ejecutando app
Del lado del cliente tenía que ejecutar npm run serve
para que se compilaran los archivos, y así fue, después de 40 segundos todo había compilado y estaba escuchando en el puerto 8080:
Eso fue del lado del cliente, pero faltaba el lado del servidor. Para ello abrí otra sesión de Termux y ejecuté:
go build
Para compilar mis archivos. Más tarde ejecuté:
./api
Y el servidor empezó a escuchar en el puerto 2811:
La edición del archivo fue para cambiar las credenciales de Go a PostgreSQL, pues no son las mismas que en mi pc local y todavía no uso env.
Todo estaba listo, ahora era momento de probar.
Probando app
La app que estoy haciendo es un control escolar simple que lleva la asistencia, tareas y otras cosas; lo presentaré más tarde (por ahora puedes ver un control escolar de calificaciones y horarios con gráficas y reportes).
Actualización: ya he publicado el software de control de tareas.
Pero ahora visité localhost en el puerto 8080 y todo fue de maravilla:
Lo anterior solo fue un menú pero quise ver si la base de datos funcionaba. Me sorprendió lo rápido que fue (incluso más rápido que en mi computadora, lo cual es razonable pues pronto cumplirá 5 años de servicio):
Para terminar muestro otra captura que tuve que tomar en modo de escritorio; se trata de una revisión de tareas:
Por el momento no se adapta a las pantallas pequeñas pero ya veré los ajustes.
Conclusión
Android, gracias a Termux, nos ha dado posibilidades que no habríamos imaginado. Ahora se puede programar completamente en un dispositivo móvil, y hay varios paquetes (incluso el SO ubuntu sobre Android) populares para programadores.
Con un teclado y un mouse inalámbrico, una pantalla o quizás una tableta, podríamos hacer algunos ajustes o cambios rápidos de código de manera portátil.
Te invito a ver más sobre Termux en mi blog.