Skip to content

Preferences API

Learn how to use Fyne’s Preferences API to store and retrieve user settings, such as theme choices, window size, or custom app configurations.

Show Code
package main
import (
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
// Use app.NewWithID so preferences persist across runs
a := app.NewWithID("com.example.preferences")
w := a.NewWindow("Preferences API")
// Get Preferences API
prefs := a.Preferences()
// Load stored value or default
username := prefs.StringWithFallback("username", "Guest")
label := widget.NewLabel("Hello, " + username)
entry := widget.NewEntry()
entry.SetPlaceHolder("Enter your name")
entry.SetText(username)
saveBtn := widget.NewButton("Save", func() {
name := entry.Text
prefs.SetString("username", name) // ✅ Save to preferences
label.SetText("Hello, " + name)
fmt.Println("Saved username:", name)
})
clearBtn := widget.NewButton("Clear", func() {
prefs.RemoveValue("username") // ❌ Remove saved key
label.SetText("Hello, Guest")
fmt.Println("Cleared username")
})
w.SetContent(container.NewVBox(
label,
entry,
saveBtn,
clearBtn,
))
w.Resize(fyne.NewSize(300, 200))
w.ShowAndRun()
}