Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright and Credits
Hands-On GUI Application Development in Go
About Packt
Why subscribe? Packt.com
Contributors
About the author About the reviewer Packt is searching for authors like you
Preface
Who this book is for What this book covers To get the most out of this book
Download the example code files Conventions used
Get in touch
Reviews
Section 1: Graphical User Interface Development The Benefits of Native Graphical Applications
Return of the graphical application
Personal computers From desktop to internet Smart phones, apps, and customer retention
Native performance Integrated user experience Reliability and offline functionality Maintainability and testing Summary
Graphical User Interface Challenges
Standard look and feel or app theme GUIs and visual hierarchy
Multiple documents Accessory windows Visual hierarchy Mobile standards
Concurrency and multi-threading
Switching threads Avoiding complexity
Web services and cloud integration
Communications Data parsing Standard components
Developing for multiple platforms
Cross-platform APIs Icons and design Testing
Packaging and distribution Summary
Go to the Rescue!
Introduction Cross-platform for any application
Cross-compiling Standard library
Concurrency in language design
Goroutines Channels The sync package
Web services included as standard Choosing your look and feel Summary
Section 2: Toolkits Using Existing Widgets Walk - Building Graphical Windows Applications
Background and aims Get started with walk
Setup Code Build Run
Benefits of a declarative API
Compared with the native API Using both APIs for flexibility
Building a user interface
Style Layout Toolbar and menu Communicating with the GUI
View model Detail view List view
Background processing
Walk in a cross-platform application Summary
andlabs UI - Cross-platform Native UIs
Background and history Getting started with andlabs UI
Prerequisites
Microsoft windows macOS Linux
Setup
Rebuilding the UI library (workaround)
Code Build Run
Generic API for multiple platforms
Controls
Box Containers Widgets Menu
Area and drawing
Building a user interface
Style Layout
Main email window Email compose dialog
Toolbar and menu Communicating with the GUI Background processing
Example
Challenges with multiple native GUIs
Consistent style
Brand styles User experience
Testing Cross-compilation
Building for Linux on macOS or windows
macOS Windows
Building for windows on Linux or macOS Building for macOS on Linux or Windows A better solution
Summary
Go-GTK - Multiple Platforms with GTK
GTK+ background Getting started with Go-GTK
Prerequisites
Installing GTK+
macOS Windows Linux
Install Go-GTK
Build Run
Signals and namespaces
Signals Passing data Namespaces
Sample application
Layout Compose layout Signaling Thread handling Cross compilation
Theming Summary
Go-Qt - Multiple Platforms with Qt
Qt background Getting started with therecipe/qt
Prerequisites
Preparing CGo Installing Qt
macOS Windows Linux License / Qt account
Installing qt (the bindings)
Build Run
Object model and event handling
Inheritance Memory management Signals and slots
Sample application
Layout The compose layout Signalling Thread handling Cross-compilation
Theming Summary
Section 3: Modern Graphical Toolkits Shiny - Experimental Go GUI API
Background and the vision for Shiny Design and supported platforms
Architecture
Lower layer Higher layer
Supported platforms Drivers currently included
Getting started with Shiny
Setup Example Cross-compiling
Cross-compiling for macOS
Widgets and material design
Design Icons Themes Widgets
Getting started continued
Code Supporting code Build and Run
Building a user interface
Design Layout Navigation File list Image view Communicating with the GUI Background processing
Summary
nk - Nuklear for Go
Background and design of Nuklear Rendering and platform support
Rendering modules Supported platforms
Getting started with nk
Prerequisites
Linux macOS and Windows Android
Setup Example Code Build and run Cross-compiling
Widgets, layout, and skinning
Widgets Layout
NkLayoutRow NkLayoutRowTemplate NkLayoutSpace
Drawing
Command queue Draw functions
Skinning
Building a user interface
Layout
Main email window Email compose dialog
Toolbar and menu Communicating with the GUI Background processing
Summary
Fyne - Material Design-Based GUI
Background and vision for Fyne Getting started with Fyne
Prerequisites
Linux macOS
Setup Example Code Build and run Cross compiling
Rendering and vector graphics
Vector graphics Drivers Supported platforms
Canvas, widgets, and layouts
Canvas (drawing) Layout Widgets Themes
Packaged themes
Building a user interface
Layout
Main email window Compose dialog
Toolbar and menu Communicating with the GUI
Loading emails Sending email
Background processing
Building an image viewer
Layout Navigation File listing Image view Communicating with the GUI Background processing
Summary
Section 4: Growing and Distributing Your Application Navigation and Multiple Windows
Planning application layout
Standard layouts Device form factors Responsive or adaptive design Custom layouts
Navigating your application
Progressive disclosure
Example 1 – Microsoft Edge Example 2 – Skyscanner flight search
Menus and toolbars
Toolbar Menu 
Multiple windows
Window types and keeping things clean
Standard dialogs Modal windows Window hints
Sizes Other hints
Notifications and task status
Minor alerts Background progress
Platform-specific considerations
Window grouping Application instances Extra features
Summary
Concurrency, Networking, and Cloud Services
Concurrency, threads, and GUI updates
Managing long-running processes
Signaling shutdown Checking completion
Communicating through channels Graphical updates from goroutines
Network resources and caching
Loading remote resources
Images JSON
Caching resource data
Connecting to cloud services
Encoding
JSON XML
Authentication – OAuth 2.0
First request Storing tokens
Posting data GUI integration
Incoming messages Activity notifications
Spinner Status panel
Consistent user experience when offline
Caching responses Queuing actions Starting offline
Summary
Best Practices in Go GUI Development
Separation of concerns
Suggested application structure
Test-driving UI development
Designed to be testable Example application test
Continuous integration for GUIs
Approaches to GUI test automation Avoiding external dependencies
Managing platform specifics Summary
Distributing Your Application
Metadata and icons
Application icon Describing your app
Bundling assets
go-bindata packr rsrc fyne bundle
Building a release
Preparing
Compiler installation
Building Packaging
Linux
Create metadata files Packaging release
macOS
Creating metadata files Packaging release
Windows
Creating metadata files Packaging release
Cross-platform packaging tools
fyne package
Distributing to platform marketplaces
Mac App Store
Packaging Uploading Reviewing
Microsoft Store
Packaging Uploading Reviewing
Linux package manager
Debian (.deb)
Packaging Distribution
Red Hat (.rpm)
Packaging Distribution
Tarball (.tar.gz)
Arch Linux Gentoo Linux Others
Containers
Summary
Installation Details
Installing Go
Microsoft Windows
Git Go Environment
Apple macOS Linux
Setting up Cgo
Microsoft Windows Apple macOS Linux
Cross Compiler Setup
Cross compiling for macOS with CGo
To macOS from Linux or Windows
Cross compiling for Windows with CGo
To Windows from macOS To Windows from Linux
Cross compiling for Linux with CGo
To Linux from macOS To Linux from Windows
Comparison of GUI Toolkits Connecting GoMail to a Real Email Server
Download Gmail credentials Creating a server provider
Downloading inbox messages Sending messages Listening for new messages
Updating an example to use Gmail
Other Books You May Enjoy
Leave a review - let other readers know what you think
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion