GTK
GTK is a toolkit for creating GUI apps, mostly targeting Linux systems and the Gnome Platform. It uses the GObject (GLib Object System) base type system.
Software Stack
Nowadays, the applications developed in GTK use the following tooling/services:
- GTK as a base for the app and widgets library
- other GObject-based libs - lots of libraries, like Soup for HTTP
- language bindings
- Libadwaita as both the widgets library and design system
- Gnome Builder as an IDE
- Flatpak for packaging the apps
- Flathub for distribution of the apps
Resources
The popularity of GTK app development would certainly benefit from more materials being available on the topic. These are the resources that I find the most valuable:
- Gnome Developer Portal - a documentation and guides for developing apps for the Gnome Platform.
- GJS Guide - the Guide to GJS with a bunch of information about GObject itself.
- elementary Developer Docs - Elementary OS encourages the use of Vala and Granite widgets library, which might not be the most popular technologies out there, but the docs are a solid guide to building GTK apps, which will be useful for any developer starting out with GTK.
- Gtk Inspector - an app that allows for live inspection of GTK apps, similar to dev tools in web browsers.
- GTK API Documentation - API reference for GTK, GDK, Pango, and many other libs
- GJS API - all the APIs exposed by GJS
- Vala API - same as above, but for Vala
- Dive into GObject (YouTube)