Building GUI Applications with Fyne and Go Golang

Learn how to build fast, efficient desktop applications for Mac, Windows and Linux using Go and Fyne.
Building GUI Applications with Fyne and Go Golang
File Size :
1.70 GB
Total length :
6h 1m



Trevor Sawler


Last update




Building GUI Applications with Fyne and Go Golang

What you’ll learn

Learn how to build GUI applications using Go and Fyne
Learn how to have your application display common widgets
Learn how to save your application state with an embedded database
Learn how to have your application call resources on the internet

Building GUI Applications with Fyne and Go Golang


Familiarity with the Go programming language
Mac or Windows computer and an Internet connection


Many developers are intimidated by the idea of writing a desktop application, and this is probably because of the rise of web based applications. In fact, some university computer science programs do not even devote an entire course to developing GUI applications, and that’s unfortunate.Go, sometimes referred as Golang, has quickly risen in popularity over the past decade, and has become extremely popular for building REST APIs, back end applications, and network software. One question that comes up a great deal online, though, is how one might go about building a desktop application using Go. For quite some time, the default answer was use Qt and CGO bindings, but several years ago a new project emerged — one that makes it relatively easy to build GUI applications in pure Go: the Fyne project. Fyne is a project is based around the premise that it should be free and simple to develop an application that can run on all platforms without modification or adaptation. Fyne apps are installed like regular applications on all platforms and deliver great performance and solid user experience. With Fyne, you can write your code once, in pure Go, and deliver applications that run on Mac OSX, Windows, Linux, Android devices, iOS devices, and as WebAssembly in the browser.This course is intended to cover the basics of building a GUI application in pure Go. We will cover:Building Desktop applications: we’ll build two: a MarkDown editor and an application that allows users to track (fictional) Gold investments and get real-time information on Gold prices.We will cover:How to work with the Fyne CanvasHow to work with Fyne WindowsHow to use (and customize) Widgets, including dialogs, text, labels, input fields, forms, and tablesHow to validate user inputHow to fetch external resources from remote servers and use them in our applicationHow to use containers to arrange things in a windowHow to embed a sqlite database into a desktop applicationHow to build custom menu items and link them to actionsHow to read and write files from your applicationHow to read and write preferencesHow to bundle assets (e.g. images) into a Fyne applicationHow to build a single binary with a custom iconHow to sign a Mac OS X application for distribution


Section 1: Introduction

Lecture 1 Introduction

Lecture 2 About me

Lecture 3 Installing Go

Lecture 4 Installing Visual Studio Code

Lecture 5 Installing Make

Lecture 6 Asking for help

Lecture 7 Mistakes. We all make them.

Section 2: Getting Started with Fyne

Lecture 8 Installing the necessary tools

Lecture 9 The obligatory “Hello, world!” application

Lecture 10 The structure of a Fyne application

Lecture 11 Adding a simple container, an entry, and button

Section 3: First Project: Building a Markdown Editor

Lecture 12 What we’ll cover in this section

Lecture 13 Getting started with the MarkDown editor

Lecture 14 Adding a Main Menu to our Application

Lecture 15 Making Menu Items Functional: Saving files

Lecture 16 Opening files

Lecture 17 Adding a filter to the open file command

Lecture 18 Making the Save menu item functional

Lecture 19 Packaging our application

Lecture 20 Writing a simple test for our application

Lecture 21 Defining a custom theme

Section 4: Second Project: GoldWatcher

Lecture 22 What we’ll cover in this section

Lecture 23 Setting up a simple application

Lecture 24 Getting started on the user interface

Lecture 25 Getting the current price of gold from an external site

Lecture 26 Writing tests for our gold prices logic

Lecture 27 Creating and returning the prices container

Lecture 28 Displaying prices in our application window

Lecture 29 Writing a test for the getPriceText function

Lecture 30 Creating a toolbar

Lecture 31 Writing a test for the toolbar

Lecture 32 Adding application tabs

Lecture 33 Getting the Gold Price Chart

Lecture 34 Creating and returning the priceChart container

Lecture 35 Handling the situation when no network is available

Lecture 36 Displaying the chart in our application window

Lecture 37 Writing a function that will refresh all Gold price information

Lecture 38 Enabling the refresh icon in the toolbar

Lecture 39 Updating gold prices in the background

Section 5: Second Project: Part II, Connecting to a database

Lecture 40 What we’ll cover in this section

Lecture 41 Setting up a database repository

Lecture 42 Implementing a sqlite Repository

Lecture 43 Implementing a sqlite repository, continued

Lecture 44 Setting up our testing environment for db-sqlite.go

Lecture 45 Testing our sqlite database repository

Lecture 46 Connecting our application to sqlite

Lecture 47 Setting up a test repository

Section 6: Second Project: Part III, populating the holdings tab

Lecture 48 What we’ll cover in this section

Lecture 49 Getting started with the holdings tab

Lecture 50 Getting the slice of holdings and testing our currentHoldings function and

Lecture 51 Testing our getHoldingSlice function

Lecture 52 Building the table widget

Lecture 53 Getting the information we need in order to refresh the holdings table

Lecture 54 Creating the refreshHoldingsTable function

Lecture 55 Displaying the holdings table in our application (finally!)

Lecture 56 Manually entering some data into sqlite

Lecture 57 Changing the container type for our holdings table

Lecture 58 Fixing a problem with the delete button

Lecture 59 Enabling the add holdings button in the toolbar

Lecture 60 Adding validation to our add holdings dialog

Lecture 61 Fixing a problem with the way prices display, and writing a simple test

Lecture 62 Installing a Makefile

Lecture 63 Adding an icon, and building an executable

Lecture 64 Setting up preferences for our application

Lecture 65 Enabling the preferences icon in the toolbar

Section 7: For Mac users: Signing our Application through Apple

Lecture 66 What we’ll cover in this section

Lecture 67 Installing Xcode, and getting a developer account

Lecture 68 Signing our application

Developers who know Go, and want to learn how to build a GUI application

Course Information:

Udemy | English | 6h 1m | 1.70 GB
Created by: Trevor Sawler

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top