Section 3: Modern Graphical Toolkits

In the four chapters of Section 2Toolkits Using Existing Widgets, we explored various graphical toolkits that provide a Go application different ways to work with existing widget sets. These toolkits provide Go APIs for either native widgets (such as CommonControls in Windows or the Cocoa widgets in macOS) or existing cross-platform toolkits (GTK+ and Qt). These widget sets are tried and tested, often supported by commercial companies, and have established developer tools to support their features (though not all functionality is available to the Go bindings). Applications built using these GUI APIs will vary in look according to the platform they are running on. This may, or may not, be desirable behavior.

In Section 3Modern Graphical Toolkits, will look at graphical toolkits designed specifically for the Go language. As part of their design, each of these aim to look and feel identical across all the operating systems they support. Doing so means breaking from traditional widget design and layout to some extent, and most of these APIs have taken the opportunity to bring in inspiration from more modern sources to design their solution.

As libraries that are designed specifically for the Go language, they fit well with the standard libraries, making them easy to learn and integrate with other Go packages. As part of a cross-platform toolkit, they also aim to reduce the complexity of cross-compiling applications for easier distribution. Applications built with these toolkits are typically small, meaning quick download times, and can be expected to run quickly due to less code being loaded than more established cross-platform solutions.

The following chapters will be covered in this section: