This tutorial series is currently a work in progress. GitHub

The purpose of this tutorial is to demonstrate GTK application development in Rust from an event-drive perspective. After gaining a lot of experience, I have come to the conclusion that this is the best way to develop GTK applications, and through this tutorial I will share what I consider to be best practices.

Besides the first chapter, each chapter will contain a useful application that you will develop alongside the tutorial. Through this, you will gain some insight into how these applications are developed, and gain experience with a variety of aspects that GTK and Rust have to offer to an application developer.

You will learn the following:

  • First and foremost, GLib and GTK
  • How to navigate the GTK-rs API documentation
  • Using GLib's global and thread-local async executors
  • Creating and configuring widgets with cascade macro
  • APP IDs and preventing applications from launching multiple instances
  • Adding an event handler in a GTK application
  • Utilizing an entity-component approach to widget management
  • Adhering to XDG standards
  • Embedding resources into a GTK applications
  • Translating applications with Fluent
  • Packaging for Debian platforms
  • GNOME Human Interface Guidelines