2026-08-06 by Roman Yepishev.
I've wanted to understand development with Gtk since 2004, when I installed Mandrake Linux, immediately installed all of the development tools from the CDs, and realized I have no idea what I was doing. I had the sources, but they were complicated, and UI interaction was complicated, so I decided to postpone learning that.
Later I got into web development and was fascinated how it is easy to build UI in HTML/CSS/JavaScript, briefly poked Qt, realised I don't understand enough and postponed again.
In January 2026 I helped fix the bug in gnome-settings-daemon, which required some GObject knowledge. I learned enough to understand how "C with GObjects" worked and it reignited my interest.
Now, at that time I was working for Google, and having been exposed to all of the Gemini AI coding hype. I decided to try bringing an app I have been regularly using, gMTP, into the modern world with Gemini, but things did not go as I expected.
I got the results, namely lots of different gMTP structures got rewritten and refactored, but this exercise in using Gemini (at that point, gemini-cli), even with all of my review and "explanations" from the model did not advance my knowledge even one bit. And I really wanted to understand the details behind UI, Gtk, Gio, GObject.) This experience has changed my attitude towards GenAI usage for writing code, so none of the code produced by the model was submitted.
So once I got more free time, I decided to dig deeper myself. Yes, I may rewrite the same line 5 times, and yes, I will forget to unref something, but those are things I can use to get better at understanding the toolkit, so that's what I am doing.
gitlab.gnome.org/rye/gmtp is my fork of gMTP, with commit messages detailing things I've learned, and things I did wrong.
