
Discover the Go programming language and the fine toolkit for cross-platform graphical applications, and learn to build your first apps across different platforms.
Andrew Williams introduces his background in Go and the Fyne project, sharing decades of software experience, open source work, and a vision for building cross-device apps with Fyne and Go.
Explore why Go is a modern, simple language that enables write-once, run-anywhere graphical apps with fast performance, built-in unit testing, extensive libraries, good documentation, and a welcoming community.
Discover how Go blends simplicity and speed to build cross-platform, offline graphical apps with a robust standard library and built-in concurrency.
Discover why Fyne is a popular cross-platform graphical toolkit for Go, built for refreshing simplicity, open source and a supportive community, with reach from desktop to mobile.
Access dot.io docs, the Fyne io YouTube channel, the cross-platform gui apps book, and a vibrant community on Slack, Discord, and Matrix for Fyne and Go support.
Go is a great language for cross-platform apps and is easy to learn. The Fyne toolkit and supportive community simplify building, deploying, and understanding Go projects across devices.
Set up your go development environment for the Fyne toolkit across macOS, Windows, and Linux, verify the installation, and prepare your code editor and tools to start coding.
Install go and Xcode on macOS, then install the Xcode command line tools. Set up the go command line helper, configure the path, and verify via the terminal.
Install the Go compiler (version 1.9) and a C compiler, plus platform tools (GCC on Linux, Xcode on macOS), and set up Git, Android SDK, and the Fine helper tool.
Set up windows development with Msys2, install go and the c compiler, configure go root and path, and install the fyne command line tool.
Update the Linux or BSD system, install required packages, and configure the Go PATH to enable the fyne command line tool for building graphical apps.
Validate your fyne setup by checking the installation and version in the terminal, then use the setup checker to confirm a clean configuration.
Learn how to install and use code editors and IDEs for go development, with Visual Studio Code and GoLand, or a terminal editor, and apply go plugins and syntax highlighting.
Review the essential tools and setup for building Go with Fyne apps, cover OS-specific installation and troubleshooting, verify your setup, and preview editors and the first code in section three.
Explore the basics of Fyne with Go by building your first Hello world and greeter apps, and learn about widgets, canvas objects, containers, and layouts.
Explore how widgets drive Go Fyne apps, with theme-aligned, out-of-the-box and third-party components like labels, buttons, progress bars, cards, rich text, and various inputs.
Set up a fresh project folder and module, install fyne v2, build a hello world app with a window and label, then run go mod tidy and go run.
Explore how the Fyne canvas defines the drawing area, handles unsafe spaces and overlays, and renders canvas objects like lines, shapes, text, images (bitmap or vector), and gradients.
Explore how containers and layouts organize a Go Fyne graphical interface, using border container, horizontal box, and split containers, tabs, and scroll views to build maintainable, rich user interfaces.
Learn to build a greeter app with go and fyne, initializing a new module and composing a vertical user interface with label, input placeholder, and greet button.
Learn to use fyne and go to build graphical applications by working with widgets, containers, and layouts, and by building and running two fyne apps; next, package and install.
Learn how to package your Go Fyne graphical app to a native bundle, install it on your computer, and use a metadata file with the Find package to simplify setup.
Understand what makes a graphical app special by examining the icon, friendly name, and packaged data. Contrast launching from an icon with command-line programs and note store-based installation.
Design a unique square app icon that remains readable at all sizes, matches your brand colors, and begin with a 1024-pixel icon.png saved with a capital I.
Package a fyne-based graphical app using the fyne helper tool, install the latest fyne tooling, and generate a mac app with a matching icon and a Windows .exe.
Install your application with the Find Helper tool using go install to bundle it for your operating system and place it in the macOS applications folder or Windows start menu.
Explore essential app metadata, including the app ID and semantic versioning, learn how reverse dns names ensure uniqueness, and discover build numbers and packaging tips to support distribution and updates.
Create a metadata file to store app details, including icon, name, id (which should never change), version, and build number, and use find package to auto populate package information.
Explore how graphical applications use metadata and why it matters, then package it into an app bundle and install it so the app appears in the application launcher.
Build a packing list app with Fyne and Go, using collection widgets for high performance, test with in-memory data, and package the app with an icon and metadata.
Explore collection widgets in Fyne, including list, table, tree, and grid wrap, and learn how templates and update patterns enable fast scrolling of many items.
Create a packing list app in Go using fyne, building a border container layout with input entries, an add button, and a list widget to manage items.
Create a packing list app using in-memory data and a string slice, bind the list to the data, and add or remove items with a bottom bar and check interactions.
Package the app with metadata, add an icon and details in a toml, and build a macOS‑style, single-binary application you can drag and drop.
Build a complete graphical interface with Fyne and Go, adding widgets and a list for large data, using in-memory storage and packaging the app for local testing.
Learn how to add local key-value storage to a packing list app using the preferences API, load and save items, and install the finished application to see how it integrates.
Explore the preferences API to store and retrieve user settings as key-value pairs across desktop, mobile, and embedded environments. Use typed access, setters, and fallbacks to ensure persisted, cross-platform data.
Load and save packing list data using the preferences API in a Go fyne app. Set a unique app id and enable key-value storage with data synchronization.
Install and run the packing list app; it follows the system theme and supports light or dark mode, with fine theme and fine scale test options on the command line.
Master persisting app data with the preferences api by loading and saving a packing list and trip name with minimal code, while monitoring changes to stay consistent with system theme.
Learn to build a cross-platform image viewer by mastering image types and pixel relationships, storage and file handling with fine APIs, and adding command line parameters.
Explore pixels versus vector images, comparing bitmap and scalable vector formats, and learn how Fyne's image scale and fill modes—stretch, contain, and original—control rendering across devices.
Explore the storage package to access cross-platform file and data resources via URIs, using reader and writer APIs across file, http, and virtual data sources.
Build an image viewer in go using fyne, with a resizable left thumbnail list and right image preview, loading images from URIs via the storage package.
Parse command line parameters with the flags package, load a user-specified image by converting the path to storage.uri, and validate extensions jpg, jpeg, or png.
Learn image types and scaling, how to include images with the storage api for cross-platform apps, and review mobile file restrictions, flags, the dialog package, and directories.
Learn to integrate dialogues and folders into the image viewer using fyne and go. Explore the dialogue and storage packages for prompts and directory lists, and add drag-and-drop support.
Discover the Fyne dialog toolkit, including confirmation, input, information, and color picker dialogs, as well as file and folder open and save flows.
Open images with the file dialogs in the image viewer, and show errors via the dialog package. Load image data from a reader, update the resource, and refresh the display.
Explore folders in the image viewer by using listable uri and the storage list function to list items under a uri.
Learn how to extend a Go and Fyne image viewer to open folders, list images via the storage API, and display selected previews using a Listable URI and dialog interactions.
Add a drop handler to load files dragged into the image viewer and display them as previews. Validate every item as an image and show an error for non-image files.
Explore the dialog package for information display and user prompts, learn to list resources and manage folders across devices, and use the window drop handler to enhance interaction.
Summarizes how Go and the fine toolkit enable building cross-platform, native graphical applications, using containers, widgets, image handling, and storage APIs, with practical projects and packaging guidance.
Explore next steps with Fyne and Go to build graphical desktop apps, tap into open-source communities, and preview a low-code app builder for mobile packaging and unit testing.
Do you want to build captivating graphical applications that run seamlessly across multiple operating systems, including desktop, mobile and web?
In this course you will learn the knowledge and skills to develop native graphical applications with the Fyne toolkit and the Go (Golang) programming language. Whether you are a seasoned developer looking to expand your skill set or a newcomer eager to explore the realm of graphical application development, this course is your gateway to mastering Fyne and Go to create engaging platform-independent applications.
Go, also known as Golang, is a programming language renowned for its simplicity, efficiency, and concurrency support. Developed by Google engineers, Go was crafted with a focus on readability, ease of use, and rapid compilation. Its minimalist syntax, robust standard library, and built-in tools make Go a compelling choice for a wide range of applications, from web development to systems programming. However, until recently the development of graphical applications with Go was limited.
Fyne is an open source toolkit designed for the creation of graphical user interfaces with the Go programming language. Fyne can be used to create graphical applications for desktop, mobile and the web, including Mac, Windows, Linux, iOS, Android, BSD and other systems. The Fyne toolkit is designed for usability with widgets and layouts that adapt to the user context. Applications can be rapidly deployed to different devices quickly and easily from a single codebase.
In this course we will start with the basics of Fyne and Go development with a Hello World and Greeter app. We will then explore basic user interface development and data storage with a packing list application. Our third application will be a recipe app which will include images, error handling and dialogues.
This course will cover:
How to use Fyne and Go to create cross-platform native graphical applications for most major desktop platforms
How to set up your system for development with Fyne and Go
How to use Fyne to create user interfaces for your applications
How to package Fyne apps for local installation
How to …
Fyne is a user-friendly Go toolkit for building cross-platform graphical user interfaces, offering simplicity, ease of use, and visually appealing application development. This course will help you develop the skills to efficiently develop cross-platform graphical applications.