 Hello and welcome back to the Nikolov's show, I guess, that's not the name, but still did you know that if you want to develop an app for Keri and you want to use a Keri framework to actually build the app, there's like three different choices, if not more, but three are the main ones. So they are Kregami, but also Maui, but also just cutie widgets, and I'm going to offer examples of them, I'm going to quickly explain what they are and what they are different, and why three. Before we get into that, just quick shout out to all the patrons, just a new one today, so I'm very happy, and this month I'm currently in Stockholm, not exactly a lot of money, so if you want to do a patron, keep in mind that I'm doing all of this in my free time, so it is particularly well appreciated, but anyway, this is Dolphin, you probably know about Dolphin. Now Dolphin is a relatively old Keri application, a very good one in my opinion, but in the context of Keri applications, it has its good story, I think it looks very nice, and it is built using cutie widgets. In general, all applications that are on the older side, again, I'm not saying old as a negative thing at all, I'm just trying to distinguish from the applications that were creating the last three, four years, which are actually a lot. All the Keri applications that are on the older side generally use cutie widgets, because when Dolphin was created, QML didn't exist, so what's QML? I'm probably just confusing you at this point, let's explain everything. Let me also open Discover, which is not cutie widgets, Discover is a more recent Keri application. Okay, so Keri uses cutie, I think we know that. Cutie is what is the toolkit that actually allows Keri to draw anything on the screen, amongst other things actually, but it's rather important to actually draw things on the screen, and it offers different ways of drawing on the screen. When Dolphin was created, the main one was through cutie widgets, but then QML was created. QML is a markup language in which you can embed JavaScript, so it is almost a fully-fledged programming language, because it has JavaScript inside of it, but it is a markup language that describes the UI, and through JavaScript, also the functioning of an application. Why QML? QML is interpreted instead of compiled, usually, I'm not trying to be technical, so it is a bit slower compared to the other alternatives, which are cutie widgets, which you describe in C++ directly. However, it is much, much simpler for people that don't know to programming that well to actually edit, and even if you do know programming, it is easier to read and easier to maintain. So it is a bit like HTML, CSS, JavaScript online, it is a very similar concept. There's a lot of people that know how to do web pages, basic web pages, but maybe not programming C++, because it's slightly easier to get into, not necessarily to know well, but to get into. QML, similar things, it's easier to read, easier to maintain. So it was a pretty nice thing, and when it was announced, however, on top of QML, QML didn't have all the end-user widgets already. There's KuriGami. KuriGami is built on top of QML. KuriGami I think is mostly, or entirely written in QML, as far as I'm aware, might be wrong, but I think so. KuriGami is a framework by KDE that actually has the components that you use for the UI. Let me make a very easy example. These cards, the shadow behind them, these are KuriGami components. The sidebar, this is a KuriGami component. All of this application is inside a KuriGami template application. If you open a lot of KuriGami apps, you will see that they look very similar. They are all KuriGami.application, something. So this is KuriGami. Qt Widgets, a bit older, C++. I know Qt Widgets less. There's also here not just Qt Widgets, but something from Qt built on top, but I'm not particularly expert in that. However, you do have components throughout Qt Widgets applications that are the same, consistent, sorry. As an example, let's take the toolbar. Any toolbar in all KDE applications that actually use toolbars, you can actually customize. You just directly configure toolbars, and you can change the order of the buttons, which button should be displayed, whether it should only have an icon or just text, and if so, what icon and what text. A lot of things you can do. KuriGami apps, you don't have that. That's mostly because KuriGami doesn't actually want to be the framework that stores data. So something should be built on top of KuriGami that stores a particular user configuration of the UI, and that hasn't been done yet. Another good example of a Qt Widgets app is Ocular, like this one. As an example, here we have a toolbar, right-click, toolbar settings, configure toolbar, same exact thing. You can see that these two between themselves are consistent, and they look different from this one, because these are Qt Widgets. This is KuriGami. So these are the applications that feel like Plasma. Then there's Maui. Maui doesn't feel like Plasma. What's Maui? Let's open up index. I lost my index, sorry. Okay, this is index. This application. Do you notice anything different? I do. It's completely different. Okay, so whereas there is an active effort to make sure that KuriGami and Qt Widgets app are consistent between each other, and at least look like they're made by the same person, Maui doesn't try to achieve that. So what is Maui? Or rather, Maui is the environment. This is a Maui application. Maui applications are built with MauiKit. MauiKit is built on top of KuriGami. So there is Qmau, programming language, markup. Above it, there's KuriGami, which is made by core Kd developers to build a Kd application with all of the widgets. And then on top of that, there is Maui, which is used to build this one. Again, it redefines the various components of the application, changes how they look, changes how they behave significantly. So as an example, first of all, we have CSDs out of the box. That is currently something that KDE core applications don't do, and probably will never do. That's something that the developers, me included, partially are generally against KDE developers at least. So who is doing Maui then? And in theory, Maui is part of KDE. In practice, I've already talked about this, it's rather embracing because Maui has some apps that are part of KDE. The framework MauiKit, which is part of KDE, a part of the framework I discovered today while I was trying to build the index, is not part of KDE for some reason. It is on a private repo, not private, but not on KDE's repo. So weird. And then there's a shell, a desktop shell, which is not part of KDE. And all of this together is Maui. So we kind of together, it's very closely related to KDE. However, the main difference is that the people working on Discover and the people working on Dolphin, we actually have a significant intersection. So there's a lot of people that work on both of these applications, making sure, and this makes sure really that there's a consistent design between them. The people that are working on Maui are just working on Maui, and nobody that works on Korgami and QWidget's application generally also contributes to Maui, generally, of course, with significant exception. But usually, this is entirely done as we could word it about. Generally, all of this is done by Camilo. If you open all of Maui applications, they're all done by Camilo, which I praise for their ability to make so many apps. I'm rather impressed. So these two categories are very much different. We not only have CSVs, we have a completely different concept. And there's also much more of a focus to make sure that Maui applications are extremely convergent, meaning that you can use them in very small form factors, such as a phone. If we take the Pine phone, we can see that Index is installed on it by default. Why is that? Because that's the only convergent KDE in a file manager. Discover is also convergent to some extent. You can see that it also works nicely. Dolphin, generally, QWidget's applications are less meant to be convergent. And you can see that these two looks right. This one doesn't. Because Korgami originally wasn't meant to be the framework to make applications convergent. Maui follows that. QDE, QWidget's app, not quite. It depends on the app, but in general, not quite. As far as I know, all of the latest apps done by KDE are Kirigami apps. And then, of course, there's Camilo doing Maui apps by himself, almost. So I think that as time passes, you'll see more and more Kirigami applications. Another reason for that, and sorry if I bore you for so long, but I do want you to have a clear idea of what's going on, is that there's currently a lot of work to develop Plasma Mobile, so a Plasma shell for mobile phones, such as the Pine phone. Sorry. What that means is that you need applications that work on a phone. And since we built Kirigami for that, like the goal of Kirigami is to make applications that are convergent, meaning work both on the desktop and on phones. Generally, the Plasma Mobile team uses Kirigami to make applications that work on the phone. But since Kirigami makes sure that application is convergent, meaning that it works both phone and desktop, all the applications that are done for the phone also work nicely on the desktop. And of course, Plasma Mobile developers also make sure that the applications that are meant for Plasma Mobile also work really nicely on Plasma Desktop too. So there's a very big series of applications that are built with Plasma Mobile in mind that are bringing actual real value to Plasma Desktop as well. Not all of them. Another example, Calendar, is a very new application. It is built with Kirigami. It is built with Plasma Desktop in mind. Maybe it also works on Plasma Mobile as well. I'm not sure on that. I never tried, but I mean it's convergent should throw. I don't know. I never tried. And that is an extremely powerful application. And it really tells you that Kirigami is able to do a complex application as well and not just mobile phones one. I've also heard Kirigami is just able to do mobile. No, no, it's also able to do a complex application. Last example, System Monitor. System Monitor is an application that is meant for test stops, obviously. And just by looking at it, I think you at this point easily recognize that it is a Kirigami application because I mean just look how similar they are with between each other. So it has the same card, the same sidebar, the same ideas. And again, this application is extremely customizable. You just go edit page and you can edit anything just by dragging and dropping. It is, see how much customization there is. There's a lot of customization. And this is to say that Kirigami apps not necessarily mean that you don't have customization. It feels so because on all things you can like customize toolbar and stuff whilst on most Kirigami apps you can't. But the apps that do require customization, such as the System Monitor are absolutely able to deliver it. So Kirigami I think is very valid toolkill that I would suggest you check out. New applications for KDE are generally done in Kirigami. I would suggest against developing new applications that are meant for the KDE community as a whole with Maui simply because Maui is currently a bit closed in themselves, also in terms of developer. Again, there's like this Camilo guy doing all of the applications. Kirigami has more developers behind them that are doing a variety of different applications. So I think there's more value to that. But of course it is your pick and your choice. So this was not too detailed. Of course we didn't see any code, but at least from the user part of it. Yes, one final remark. Obviously with Kirigami apps meant to be convergent. So being able to use them on phones as well, they're much better when it comes to touch. Touch screenability for Kirigami applications is generally better. Also Dolphin and apps like that work nicely because they have been ported to, but in general Kirigami apps are better. So that's also something to keep in mind and Maui being built on top of Kirigami, he narrates that for free. And that is the end of the video for this time for real. I hope that you learned something and see you tomorrow with another video if you want. There's no, you don't have to, just I think you could