~whereswaldon/riga2023

Ubuntu Summit 2023 Gio Resources
todo-app: special case window decoration
todo-app: add trace regions to event loop
doc: add note about master branch trace viewer

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~whereswaldon/riga2023
read/write
git@git.sr.ht:~whereswaldon/riga2023

You can also use your local clone with git send-email.

#Ubuntu Summit 2023 Gio Resources

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.

#Using this repo

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.

#Requirements

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/

#Workshop

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.