Hey everyone! I’ve been a Go dev for many years now, and I’m sure you’ve noticed that Go has its fair share of headaches when it comes to GUI app development.
I looked at the options out there: Fyne is cool, but CGO? Why? Then there’s Gio… but the learning curve is pretty brutal. Wails is great, but then you’re forced to write HTML, JS, and CSS.
So, I decided to build a pure Go GUI framework right on top of Gio called Proton.
Example code
package main
import "github.com/CzaxStudio/proton"
type UI struct {
name proton.Editor
btn proton.Clickable
}
func main() {
u := &UI{}
a := proton.New("my app")
a.Window("Hello", 480, 300, func(win *proton.Win) {
proton.H3(win, "Hello from Proton!")
proton.Gap(win, 8)
proton.Input(win, &u.name, "Your name")
proton.Gap(win, 8)
if proton.Button(win, &u.btn, "Go") {
println("Hello,", u.name.Text())
}
})
a.Run()
}
It requires zero CGO, it’s dead simple to use, and it’s completely open-source. If this sounds like something you’ve been looking for, please give it a spin! If you try it and don’t like it, I’d love to hear your feedback on what I can fix or improve. Let me know what you think!