explaingit

fyne-io/fyne

📈 Trending28,276GoAudience · developerComplexity · 2/5ActiveLicenseSetup · moderate

TLDR

Go toolkit for building desktop and mobile apps with a single codebase. Write once, run on Windows, Mac, Linux, Android, and iOS.

Mindmap

mindmap
  root((Fyne))
    What it does
      Cross-platform GUI
      Write once deploy many
      Material Design themes
    Building blocks
      Windows and dialogs
      Buttons and labels
      Text input widgets
    Platforms
      Desktop apps
      Android apps
      iOS apps
    Getting started
      Go 1.17 or later
      C compiler needed
      CLI packaging tool
    Use cases
      Business tools
      Utilities and helpers
      Mobile applications

Things people build with this

USE CASE 1

Build a desktop utility app in Go that runs on Windows, Mac, and Linux without rewriting the UI for each platform.

USE CASE 2

Create a mobile app for iOS and Android by packaging the same Go codebase using the fyne CLI tool.

USE CASE 3

Distribute standalone executables that don't require users to install dependencies or libraries beforehand.

USE CASE 4

Prototype a cross-platform business tool or dashboard with buttons, text fields, and dialogs in minimal code.

Tech stack

GoMaterial DesignAndroidiOSC

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Go installation and platform-specific SDKs (Android SDK/NDK for Android, Xcode for iOS) depending on target platforms.

Use freely for any purpose including commercial. Keep the copyright notice and don't use the authors' names to endorse derivative work.

In plain English

Fyne is a GUI (graphical user interface) toolkit written in Go, meaning it gives you the building blocks to create desktop and mobile apps with buttons, windows, labels, and other visual elements. The key appeal is that you write your app once and it runs across desktop and mobile platforms from the same codebase. The README includes a short, illustrative code example: a few lines of Go create a window with a label and a button that changes the text when clicked. This captures the design goal, minimal boilerplate to get a working visual app. From there you can package the same code for Android or iOS using the included fyne command-line tool, which handles the platform-specific packaging steps. The toolkit is inspired by Material Design (a visual design system) and comes with a built-in light and dark theme. It ships with a widget demo you can run immediately to see the full set of available UI components. Apps built with Fyne don't require pre-installed libraries on the user's machine, which makes them easier to distribute. You would use Fyne when you want to build a cross-platform desktop or mobile app in Go without needing separate native UI frameworks for each platform. It requires Go version 1.17 or later, a C compiler, and your system's standard development tools. Topics include go, android, and ios, confirming the mobile targets. Building the app for the first time on some systems can take several minutes.

Copy-paste prompts

Prompt 1
Show me how to create a simple Fyne window with a button that updates a label when clicked, then package it for Android.
Prompt 2
I want to build a desktop app in Go that works on Mac, Windows, and Linux. How do I use Fyne to create the UI and what are the system requirements?
Prompt 3
How do I use Fyne's built-in themes and what widgets are available? Show me how to explore them with the demo app.
Prompt 4
Walk me through packaging a Fyne app for iOS using the fyne command-line tool.
Prompt 5
What's the minimal Go code to create a window with a text input field and a button that processes the input in Fyne?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.