If you're not planning on publishing it and don't need much security, electron is going to be the easiest to start and there's lots of resources so AI should be able to do most of the boring work for you
As @Kainoa suggested, avoid targeting a specific distro. In fact, I would also avoid GTK (and Qt) due to dependencies/bloat. First, I'd recommend Rust as your main language; if you need a GUI check out egui/iced/slint - they're all very lightweight unlike GTK/Qt. For packaging, Flatpak & Docker.
1/3
- Rust, because of its memory safety features, performance, relative ease of development (compared to C/C++)
- egui/slint/iced, because other traditional toolkits (like GTK & Qt) are too complex & overwhelming for newbies. Plus, a Rust-native UI benefits from all cool Rust features like safety.
2/3
- Finally, Flatpak/Docker, so your app can run on most distros without being tied down to a particular distro/proprietary technology, or worry about distro-specific dependencies, and also users don't complain about support for their favorite distro. :)
3/3
Generally, unless you're making distro specific tooling, don't focus on targeting one distro – rather, you need to decide what *toolkit* you're targeting (GTK4, QT, libcosmic, Electron, Tauri, etc). Best place to start imo would be GTK4 + LibAdwaita: https://docs.gtk.org/gtk4/getting_started.html
It's not really upsides and downsides, just development patterns and general UI design guidelines that you prefer. If I had to give a downside, I'd say that LibAdwaita is fairly strict in terms of styling, but again, that's a preference – the upside is that all LibAdwaita apps are very coherent
Ubuntu uses GNOME by default, but it's their own modified version which integrates nicely with KDE Plasma apps, so it's like there's no wrong option here.
No idea. I haven't touched native Linux on a desktop in quite a few years, so the last time I was doing anything similar was with PyQT and PySide for the KDE side of the things.
Comments
https://pop-os.github.io/libcosmic-book/
1/3
The web demo they have that runs on pure webgl is so amazing.
Do I need to learn rust now?
- egui/slint/iced, because other traditional toolkits (like GTK & Qt) are too complex & overwhelming for newbies. Plus, a Rust-native UI benefits from all cool Rust features like safety.
2/3
3/3
Rust already strongly prefers static linking, so the installed dependency tree should be minimal, so distro porting is a non-issue.
If using C/C++ I can see why flatpak/docker are a good idea.
It is cross platform and you can easily deploy your apps on Windows, Mac and Linux.
(Android and iOS too with some gymnastics)