Book Image

Hands-On GUI Application Development in Go

By : Andrew Williams
Book Image

Hands-On GUI Application Development in Go

By: Andrew Williams

Overview of this book

Go is often compared to C++ when it comes to low-level programming and implementations that require faster processing, such as Graphical User Interfaces (GUIs). In fact, many claim that Go is superior to C++ in terms of its concurrency and ease of use. Most graphical application toolkits, though, are still written using C or C++, and so they don't enjoy the benefits of using a modern programming language such as Go. This guide to programming GUIs with Go 1.11 explores the various toolkits available, including UI, Walk, Shiny, and Fyne. The book compares the vision behind each project to help you pick the right approach for your project. Each framework is described in detail, outlining how you can build performant applications that users will love. To aid you further in creating applications using these emerging technologies, you'll be able to easily refer to code samples and screenshots featured in the book. In addition to toolkit-specific discussions, you'll cover more complex topics, such as how to structure growing graphical applications, and how cross-platform applications can integrate with each desktop operating system to create a seamless user experience. By delving into techniques and best practices for organizing and scaling Go-based graphical applications, you'll also glimpse Go's impressive concurrency system. In the concluding chapters, you'll discover how to distribute to the main desktop marketplaces and distribution channels. By the end of this book, you'll be a confident GUI developer who can use the Go language to boost the performance of your applications.
Table of Contents (25 chapters)
Title Page
Copyright and Credits
About Packt
Contributors
Preface
Comparison of GUI Toolkits
Index

Summary


In this chapter, we started the exploration of GUI toolkits by first looking at the Walk API for Windows' graphical application development. We looked at how to get a Go-based Windows application running, and learned how the Walk project is structured into separate declarative and native APIs. We also saw how each of these APIs provides different benefits and how they are best combined to create a simple application.

As the Walk design was heavily inspired by the Qt project (which we will return to in Chapter 7, Go-Qt - Multiple Platforms with Qt), we were able to use the interface-designer features of Qt Creator to mock up a basic email application that we then built out using the declarative API. This email application is a design that can be reused for each of the toolkit-exploration chapters. To support the example applications, we imported another package that is provided in this book's source code, which provides some data models and test data. By combining our UI code, the...