todo-app: special case window decoration
todo-app: add trace regions to event loop
doc: add note about master branch trace viewer
This repo contains several distinct resources for people at the Ubuntu Summit interested in Gio.
The folder ops-only-button
contains a simple button implementation that I used in my high-level presentation.
The folder todo-app
contains a somewhat realistic (if basic) application for managing a todo list. This is the basis for my workshop on building with Gio.
To play with these examples, clone the repo:
git clone https://git.sr.ht/~whereswaldon/riga2023
Then ensure you meet the system requirements by installing relevant software.
To build or run any of the code in this repo, you will need to install Gio's dependencies for your target platform. Follow the instructions for your platform here. Mostly you need a recent version of Go and system graphics libraries/headers.
The todo-app
project uses SQLite to demonstrate a strategy for reactive application design with persistent state. This introduces an additional dependency on your system C toolchain on platforms that otherwise would not need it (Windows). Not all Gio applications need this, but you'll need a functioning clang or GCC installation to build todo-app
.
You can test whether you've got all of the requisite dependencies installed by running the ops-only-button
app with:
go run ./ops-only-button/
If you are attending my workshop on Gio (or following along with a recording), we will work by modifying the todo-app
application.
I've instrumented the project with go runtime tracing, so you may wish to install a trace viewer for easy observability:
go install honnef.co/go/gotraceui/cmd/gotraceui@latest
There are lots of nice features that aren't in a release yet. If you're willing to run the bleeding edge:
go install honnef.co/go/gotraceui/cmd/gotraceui@master
NOTE: $GOPATH/bin
needs be in $PATH
for gotraceui
to be automatically invoked by the application instrumentation.