/CAS-gtk-tutorial

A GTK Tutorial for my CAS Project

CAS Gtk Tutorial

I'm creating this GTK Tutorial as part of my CAS (Creativity, Activity and Service) Project for the IB Diploma Programme. This tutorial will contain:

  1. Introduction to GTK and GObject
    • What is GTK?
    • Hello world!
    • Organizing our window: Boxes and Grids
    • Buttons and signaling
    • Entries and Spinbuttons
    • Headerbar buttons
    • GObject Properties and bindings
    • Different views, same window. GtkStackSwitcher
    • Gtk Inspector and testing
  2. Meson: A modern build system
    • Building our project with Meson
    • Experimenting with Meson
  3. Flatpak: the modern app distribution system
    • Why Flatpak?
    • Hello world, from a sandbox!
    • Flatpak permissions and how to use them
    • Breaking and fixing flatpak apps with Flatseal
  4. Maintainable UI: An introduction to GTK RAD Tools
    • An introduction to Glade
    • Creating our first window in Glade
    • GResources and post install scripts in Meson
    • Composite templates and Gresources
  5. Saving app information: Introduction to GSchemas
    • An introduction to GSchemas
    • How to use GLib.Settings
  6. A trivial Application:
    • Creating a GNOME Builder template
    • Building our UI with Glade
    • Reading XML files for UI, and writting them by hand
    • Custom stylesheet with for our application
    • Extending other GtkWidgets
    • Translations
  7. A trivial application 2: An Introduction to Libhandy
    • What is libhandy?
    • An modern and adaptative StackSwitcher with libhandy
    • Adaptative preferences window
    • Keyboard shortcuts and Actions
  8. Porting our application to GTK4:
    • GTK4 builder tool (gtk4-builder-tool)
    • Replacing Handy widgets with Adwaita Widgets
  9. A world full of colors: Libadwaita
    • Accent Colors!
    • AdwApplication and automatic stylesheets
    • The Dark and Light preferences settings

From which, this sections have been completed:

  • Introduction to GTK and GObject
  • Meson: A modern build system
  • Flatpak: the modern app distribution system
  • Maintainable UI: An introduction to GTK RAD Tools
  • Saving app information: Introduction to GSchemas
  • A trivial Application
  • A trivial application 2: An Introduction to Libhandy
  • Porting our application to GTK4
  • A World Full of Colors: an introduction to Libadwaita

Suggestions, feedback, recommendations are welcomed. You can contact me on Matrix too: @dimmednerd:matrix.org