Primer programa utilizando Astilectron-go
Como vimos en guis y frameworks de go astilectron nos permite crear aplicaciones cross-plataform con la ayuda de electron.
la necesidad de crear este pequeño articulo se debió a que hay muchos tutoriales de como hacer una app con astilectron pero todas ellas son una copia una de otra y no nos dicen bien como hacer la app en si, ademas de no ser una app simple para iniciar.
En este articulo haremos todo lo contrario haciendo una app, tan simple como un Hello World ya que muchas personas se han con estos otros ejemplos que no son los mejores para empezar con la GUI.
Primer paso: importar astilectron
Para importar astilectron deberemos abrir nuestra terminal(cmd, linux terminal, mac terminal, etc) la que sea y correr:
go get -u github.com/asticode/go-astilectron
luego deberíamos posicionarnos en la carpeta src de go y crear una carpeta ahí.
Segundo Paso: creando muestro main.go
En la documentación oficial no da información como hacerlo pero no como hacerlo realmente, para que el código que esta funcione realmente deberemos importar electron y astielectron con import.
main.gopackage main import ( "log" "os" "github.com/asticode/go-astikit" "github.com/asticode/go-astilectron" ) func main() { var a, _ = astilectron.New(log.New(os.Stderr, "", 0), astilectron.Options{ AppName: "AE", }) defer a.Close() // Start astilectron a.Start() nwin(a) // Blocking pattern a.Wait() } func nwin(parent *astilectron.Astilectron) { var w, _ = parent.NewWindow("http://127.0.0.1:4000", &astilectron.WindowOptions{ Center: astikit.BoolPtr(true), Height: astikit.IntPtr(600), Width: astikit.IntPtr(600), }) w.Create() }
ok deberiamos correr go mod init
y go mod tidy
corramos go build
también para ver lo que hemos creado hasta ahora
Al correr el exe(caso windows) nos debería abrir una ventana cromium en este caso con título AE.
Bien, ya tenemos andando astilectron.
Paso 3: Agregando HTML
Hasta ahora teníamos una ventana vacía, lo que nos falta es utilizar HTML dentro de la ventana, tenga en cuenta que además de HTML podemos usar React, Vue y otros framework en conjunto con astielectron. En este caso utilizaremos HTML solo.
Para cambiar esto cambiemos parte de donde se crea la ventana:
main.gofunc nwin(parent *astilectron.Astilectron) { var w, _ = parent.NewWindow("index.html", &astilectron.WindowOptions{ Center: astikit.BoolPtr(true), Height: astikit.IntPtr(600), Width: astikit.IntPtr(600), }) w.Create() }
Ahora deberíamos de hacer un archivo index.html como por ejemplo el siguiente:
index.html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <h1>Hello World!</h1> </body> </html>
Este es el programa más básico que podemos hacer con astilectron, espero que le fuera de ayuda. En caso de que desee una continuación del tema, puede contactarme en twitter.