I thought I’d give you some feedback on my experience creating a snap for a GTK 3.0 app that I will be releasing soon. To many of you this may not come as a surprise: after testing against some Linux variants, I couldn’t believe how inconsistent Linux desktops are.
For every linux variant I tested (distro + gnome/kde/xfce/mate + wayland/xorg), I had to make a code change to fix a problem. They were mostly GUI-related problems, like differing widget behaviors, the mapping of the app’s windows to the .desktop entry (for proper app name and icon display), how the app appears in the menu, and desktop notification behavior.
On the backend side, I had some issues with the experimental user-daemons snapd feature on desktops like Manjaro XFCE, which required a reboot (or
systemctl --user daemon-reload +
systemctl --user restart ...) for my user daemon to work. For instance, the daemon won’t auto-start upon initial install or any refreshes; and if I remove the snap, sometimes the daemon process doesn’t get stopped. I just had to code my app to handle these cases as well as possible without creating too much confusion for the user. But I’m confident that user-daemons will work properly everywhere in the future.
Anyway, in the end my message is this: no matter how good you think your snap is, test it EVERYWHERE (or in as many linux variants as possible). I guarantee you will have to make code changes, especially if it’s a GUI app and you’re picky/OCD like I am. Apart from the issues I described, my snap was otherwise very consistent across my tests, which IMO goes to show the goodness of snaps.
Edit: I also tested on Ubuntu (it’s my main OS).