We need your thoughts on Kirigami

Kirigami inherits the basic feeling of Qt Quick itself, which compared to QWidgets feels like a random toolbox of items that are sort of made for desktop apps, but actually not really because you run into all sorts of small inconveniences along the way.

Things like having several different versions of global sidebars, but no help with organizing all of the app’s actions into a comprehensive menubar. Arbitrarily placed hamburger menu buttons that have nothing in common with the automatic hamburger menu button from QWidgets. Components that assume you’ll put them in a form layout or they won’t work correctly.

Page stacks that awkwardly leave a page open by default after navigating back, which also makes OK/Cancel weird in page stacks. Global context sidebars that don’t have built-in PageStack functionality, inflexible page pinning at the left or even right of the view, pages can only be added on the right but not in the middle. Huge wasted space for page titles when the window title just above shows the same thing already.

Form layouts that can’t align the form label with the topmost element of a two-row control, and when you finally find top alignment, it doesn’t align with the top control either. So instead you’re just going to split your two-row control into two separate items, which doesn’t help with reusing it elsewhere.

It’s the thousand papercuts, when I think hey, this looks like it should solve my problem, but actually no it doesn’t.

Qt Quick feels like it’s made for companies that have a very good idea of what their target device is, and that want to provide a custom (probably embedded) company-branded UI to users. Desktop and common look&feel across apps was and is an afterthought for Qt Quick. Basic controls such as lists and comboboxes require me to copy and paste code to calculate text metrics so that at least my initial set of text items doesn’t get cut off.

I’m looking to Kirigami to help me with making a standard app that looks & feels “right” across desktops, where the easy way to use it is also the one that works well out of the box. But the navigation components make for a poor default experience, abstractions are leaky, and in the end I need to hardcode lots of stuff that I know will break for a user with non-standard setup.

Kirigami is not the best at mobile, it’s not the best at “custom branded” cross-platform, and it’s not particularly great at guiding users towards making a decent “standard” open source desktop app. It gets you some improvements over the poor state of Qt Quick, and that’s a good reason to include it if you’ve already decided to use that because QWidgets is on life support. KDE obviously nudges apps towards Kirigami so that’s a handful of developers that will use it no matter what. But no hero use case(s) to get excited about.

Assuming the Kirigami team knows who their target “customer” is, I think it would help to tightly collaborate with one particular project/team and knock it out of the park for them. Then another one. Do you want to provide all the components for an existing QWidgets app to port it to QML without regressions? Do you want to support a new app in making their non-standard UI paradigm work? It’s okay to be mediocre at many things as long as you win hard at some of them.

Furthermore, it would be nice if the vision and target “customer” of Kirigami is widely communicated to the public. This thread’s opener is unfortunately similarly vague: Adopting Kirigami for what kind of app? Top choice for solving which problems? I know it’s meant to be open-ended, but imho more focus on a subset of framework users could help with moving towards Kirigami kicking ass. It also makes for good blogging material.

9 Likes