Building GUI Applications with Fyne and Go (Golang)

Building GUI Applications with Fyne and Go (Golang)

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 66 lectures (5h 52m) | 1.90 GB

Learn how to build fast, efficient desktop applications for Mac, Windows and Linux using Go and Fyne.

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 delivery 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 Canvas
  • How to work with Fyne Windows
  • How to use (and customize) Widgets, including dialogs, text, labels, input fields, forms, and tables
  • How to validate user input
  • How to fetch external resources from remote servers and use them in our application
  • How to use containers to arrange things in a window
  • How to embed a sqlite database into a desktop application
  • How to build custom menu items and link them to actions
  • How to read and write files from your application
  • How to read and write preferences
  • How to bundle assets (e.g. images) into a Fyne application
  • How to build a single binary with a custom icon
  • How to sign a Mac OS X application for distribution
Table of Contents

1 Introduction
2 About me
3 Installing Go
4 Installing Visual Studio Code
5 Installing Make
6 Asking for help
7 Mistakes. We all make them.

Getting Started with Fyne
8 Installing the necessary tools
9 The obligatory Hello, world! application
10 The structure of a Fyne application
11 Adding a simple container, an entry, and a button

First Project Building a Markdown Editor
12 What we’ll cover in this section
13 Getting started with the MarkDown editor
14 Adding a Main Menu to our Application
15 Making Menu Items Functional Saving files
16 Opening files
17 Adding a filter to the open file command
18 Making the Save menu item functional
19 Packaging our application
20 Writing a simple test for our application
21 Defining a custom theme

Second Project GoldWatcher
22 What we’ll cover in this section
23 Setting up a simple application
24 Getting started on the user interface
25 Getting the current price of gold from an external site
26 Writing tests for our gold prices logic
27 Creating and returning the prices container
28 Displaying prices in our application window
29 Writing a test for the getPriceText function
30 Creating a toolbar
31 Writing a test for the toolbar
32 Adding application tabs
33 Getting the Gold Price Chart
34 Creating and returning the priceChart container
35 Handling the situation when no network is available
36 Displaying the chart in our application window
37 Writing a function that will refresh all Gold price information
38 Enabling the refresh icon in the toolbar
39 Updating gold prices in the background

Second Project Part II, Connecting to a database
40 What we’ll cover in this section
41 Setting up a database repository
42 Implementing a sqlite Repository
43 Implementing a sqlite repository, continued
44 Setting up our testing environment for db-sqlite.go
45 Testing our sqlite database repository
46 Connecting our application to sqlite
47 Setting up a test repository

Second Project Part III, populating the holdings tab
48 What we’ll cover in this section
49 Getting started with the holdings tab
50 Getting the slice of holdings and testing our currentHoldings function and
51 Testing our getHoldingSlice function
52 Building the table widget
53 Getting the information we need in order to refresh the holdings table
54 Creating the refreshHoldingsTable function
55 Displaying the holdings table in our application (finally!)
56 Manually entering some data into sqlite
57 Changing the container type for our holdings table
58 Fixing a problem with the delete button
59 Enabling the add holdings button in the toolbar
60 Adding validation to our add holdings dialog
61 Fixing a problem with the way prices display, and writing a simple test
62 Adding an icon, and building an executable
63 Setting up preferences for our application

For Mac users Signing our Application through Apple
64 What we’ll cover in this section
65 Installing Xcode, and getting a developer account
66 Signing our application