Hey folks, built a thing called gova on top of fyne. It's a declarative layer with a SwiftUI-style API: struct components, reactive state keyed by call site, modifier chains. Fyne does all the actual rendering—gova just sits on top of it.
Quick counter example:
type Counter struct{}
func (Counter) Body(s *g.Scope) g.View {
count := g.State(s, 0)
return g.VStack(
g.Text(count.Format("Count: %d")).Font(g.Title),
g.Button("+", func() { count.Set(count.Get() + 1) }),
).Padding(g.SpaceLG)
}
Would really value honest feedback from people who actually use Fyne, especially whether the API shape feels natural.
Repo: https://github.com/NV404/gova
Docs: https://gova.dev