Repo of the Day
fyne-io/fyne: Cross platform GUI toolkit in Go inspired by Material Design
Published: Aug 18, 2026
Open repository ↗Cross platform GUI toolkit in Go inspired by Material Design - fyne-io/fyne
Summary
Fyne is an open source UI toolkit and app API for Go that lets developers build graphical applications from a single codebase targeting desktop and mobile platforms. It is distributed under the BSD-3-Clause license and exposes widgets and layout containers through the fyne.io/fyne/v2 Go module.
What it is useful for
Fyne is useful when a Go team needs to deliver a GUI that runs on multiple operating systems, including Android and iOS, without maintaining a separate UI stack per platform. It fits small utilities, internal tools, and prototypes where a native-looking desktop or mobile interface is required but the team prefers to stay in Go. The toolkit also provides a mobile simulation build tag for previewing UI on a desktop machine, and the bundled fyne command line tool can package and sign apps for distribution to app stores.
How engineers can use it
The README documents the following flow. Install Go 1.22 or later, a C compiler, and the platform's development tools, then add the dependency and tidy the module:
go get fyne.io/fyne/v2@latest
go mod tidy
A minimal window with a label and a button is shown in the README:
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello Fyne!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Hi!", func() {
hello.SetText("Welcome :)")
}),
))
w.ShowAndRun()
}
Run it locally with go run main.go, or preview a mobile layout using go run -tags mobile main.go. To see a wider set of widgets, install and run the demo app via go install fyne.io/demo@latest and then demo. For shipping, install the tooling with go install fyne.io/tools/cmd/fyne@latest and use fyne package -os android -appID my.domain.appname for Android, or fyne package -os ios or iossimulator for iOS. The fyne release subcommand packages signed builds for store submission.
The README flags one practical caveat: the first Fyne build on Windows can take up to 10 minutes, while subsequent builds are fast. Detailed setup notes are in the "Getting Started" document at fyne.io/develop, and full API reference is on pkg.go.dev.