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
- 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 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
Who this course is for:
- Developers who know Go, and want to learn how to build a GUI application
I have twenty years of experience in professional software development, and twenty years of experience as a University professor.
As an entrepreneur, I have worked with a broad range of clients, including Thomson Nelson, Hewlett Packard, the Royal Bank of Canada, Keybank, Sprint, and many, many others. I also have extensive management and project management experience. I have led teams of fifty developers and artists on multi-million dollar projects, and much smaller teams on much smaller projects.
As a professor, I have taught in a wide variety of course areas, including Computer Science, English, Irish, and American literature, and a number of "crossover" courses that bridge the liberal arts and technological fields.
I have won regional, national, and international awards for my work in the IT field, and have also won awards for my teaching and research as a University professor.