1 00:00:00,017 --> 00:00:04,877 To introduce Carl Schwan. He's going to be talking to us about the KDE apps initiative. 2 00:00:05,917 --> 00:00:10,957 CARL SCHWANNENBACHER- OK, yeah. Well, actually, I won't talk exactly about KDE 3 00:00:10,957 --> 00:00:14,817 apps initiative because there's no goal, which does almost the same thing. 4 00:00:14,957 --> 00:00:19,157 So there's no point to have an initiative and a goal at the same time. 5 00:00:19,937 --> 00:00:23,477 But I will still talk about the app ecosystem, the KDE app ecosystem, 6 00:00:23,837 --> 00:00:31,057 and what we can do to make data, to improve it, and the current state of it. 7 00:00:31,437 --> 00:00:34,957 Oh, no, it's like the sun is split up. 8 00:00:35,277 --> 00:00:41,217 Okay, so a bit about me. I've been contributing for a long time. I started in 2018. 9 00:00:41,957 --> 00:00:44,697 I've evolved in many, many apps. 10 00:00:45,517 --> 00:00:51,437 I love apps. So like, for example, NeoChat, Tokodon, Macro, Caligra, 11 00:00:51,677 --> 00:00:55,137 Contrast, Coco, and a lot, lot more. 12 00:00:55,137 --> 00:00:59,277 I mean, this is mostly like a lot evolved, and there's also a lot of applications 13 00:00:59,277 --> 00:01:01,697 where I'm a bit less involved, but still involved. 14 00:01:02,757 --> 00:01:07,617 And maintaining key gaming add-ons, and a lot of our part of the infrastructure 15 00:01:07,617 --> 00:01:12,937 for the AppleApps.key.org to do a bit of promotion for apps. 16 00:01:15,957 --> 00:01:20,917 Yeah. Yeah, so let's talk a bit about what is an application ecosystem. 17 00:01:21,957 --> 00:01:28,897 I try to find some definition on the internet, but there is not one definition. 18 00:01:29,037 --> 00:01:33,417 There is multiple keywords, which might be interesting to talk about. 19 00:01:35,177 --> 00:01:40,317 It's inspired by natural ecosystem, like with multiple actors, 20 00:01:41,837 --> 00:01:46,337 and which are a bit of a relationship between each of us. 21 00:01:48,577 --> 00:01:57,377 And I think that's, yeah. And there's a bit of scalability, You cannot go alone, 22 00:01:57,557 --> 00:02:01,637 you need many actors in the system to grow and to, um, 23 00:02:03,757 --> 00:02:10,837 uh, uh, the ability, which is as a related, like alone, you cannot create an 24 00:02:10,837 --> 00:02:11,457 application ecosystem. 25 00:02:11,797 --> 00:02:17,997 You need many people, many different companies, uh, just hobbies. 26 00:02:18,537 --> 00:02:24,257 It needs to be like many different things. things, and this also ensures that 27 00:02:24,257 --> 00:02:25,617 the system is resilient. 28 00:02:28,817 --> 00:02:31,117 And there's also collaborations. 29 00:02:35,932 --> 00:02:38,832 You are working on the same goal together. 30 00:02:39,412 --> 00:02:44,052 But there is a bit of competition, which is also good. 31 00:02:44,252 --> 00:02:48,172 It's a healthy balance between collaboration and competition. 32 00:02:49,132 --> 00:03:00,252 You might have some multiple music applications, which all try to reach a different niche. 33 00:03:00,252 --> 00:03:06,012 And they might reuse a lot of codes. 34 00:03:08,272 --> 00:03:14,052 And also iterability, integration with APIs. 35 00:03:15,432 --> 00:03:21,672 It's also something that we have a lot in KDE. For example, if you use Caligra, 36 00:03:21,912 --> 00:03:29,192 you will be able to read your document files as in Okula because Caligra provides Okula generators. 37 00:03:30,252 --> 00:03:33,052 And we have a lot of that in KDE with Kapparts. 38 00:03:34,292 --> 00:03:41,672 And that's a good thing, I think, that each application extends each of us. 39 00:03:43,812 --> 00:03:52,692 Yeah, so my goals were to close the feature gap between proprietary application ecosystems. 40 00:03:53,792 --> 00:03:58,532 With that, I mean Windows, macOS, iOS, Android, 41 00:04:00,252 --> 00:04:09,452 they have a lot of applications, which covers many, many use cases. 42 00:04:09,712 --> 00:04:16,272 And if you want to get more users for BASMA and Linux in general, 43 00:04:18,392 --> 00:04:24,472 we need to close these gaps so that users can do the same thing that they did 44 00:04:24,472 --> 00:04:33,692 with some property systems and do that with a liberal open-source system we 45 00:04:33,692 --> 00:04:37,372 think is to close these gaps we need to increase the number of applications, 46 00:04:38,212 --> 00:04:44,192 designed for plasma and plasma mobile and this is not something we can do with 47 00:04:44,192 --> 00:04:47,772 the current number of contributors so we need to as well get more contributors. 48 00:04:50,832 --> 00:04:56,192 And, yeah, and, and as well, like increase the number of users in other platforms, 49 00:04:56,432 --> 00:05:00,832 because that's why it's cool, but we need to ensure, but as we're working on 50 00:05:00,832 --> 00:05:02,692 Gnome on Windows and macOS, 51 00:05:03,032 --> 00:05:09,412 Android, and I saw some people talking about iOS in the last few days, so yeah. 52 00:05:10,872 --> 00:05:15,812 And this also leads to increase adoption of Qt and KDE frameworks, 53 00:05:16,072 --> 00:05:21,272 which is super important for us like the more users of the frameworks we have 54 00:05:21,272 --> 00:05:22,732 the better it will become, 55 00:05:23,472 --> 00:05:28,372 yeah and but we don't only need to create new applications we have a lot of 56 00:05:28,372 --> 00:05:33,132 applications already and a lot of these applications um. 57 00:05:37,570 --> 00:05:40,610 Um i mean we have a lot of applications which are maintained well maintained 58 00:05:40,610 --> 00:05:43,970 but we as well have some applications which didn't receive 59 00:05:43,970 --> 00:05:48,350 any updates in a long time uh like some 60 00:05:48,350 --> 00:05:52,470 example like calica which i just tried to revive recently but 61 00:05:52,470 --> 00:05:55,650 carwave i mean we have a lot of or a 62 00:05:55,650 --> 00:05:58,670 lot of educational applications for example which might need 63 00:05:58,670 --> 00:06:02,650 a small push um yeah and 64 00:06:02,650 --> 00:06:05,910 the good thing is like every time we have a new application or 65 00:06:05,910 --> 00:06:08,690 we improve application to other new things we also improve 66 00:06:08,690 --> 00:06:13,810 our frameworks like i see that with for example add-ons like every time i create 67 00:06:13,810 --> 00:06:19,250 new applications or try to get involved in the new applications um it leads 68 00:06:19,250 --> 00:06:23,810 to a lot of improvements to kia add-ons which is a good thing and these improvements 69 00:06:23,810 --> 00:06:27,550 as a benefit also of our applications, 70 00:06:30,330 --> 00:06:35,750 applications, which is good. And then basically the end goal is to see the core 71 00:06:35,750 --> 00:06:39,930 of the KDE project as both in terms of applications, but as well as the community. 72 00:06:43,190 --> 00:06:51,170 Yeah. Let's look a bit at the current state. We have over 200 first-party applications. Yeah. 73 00:06:53,567 --> 00:06:57,007 And we have 60 frameworks, over 60 frameworks. 74 00:06:57,927 --> 00:07:01,867 With KF5, we had like over 80s, and had to revisit a bit the numbers. 75 00:07:02,547 --> 00:07:07,027 We get rid of a few of them, which is good because these were like all frameworks, 76 00:07:07,187 --> 00:07:11,567 which are not really maintained like HTML, like you know, you choose GitHub engine. 77 00:07:12,487 --> 00:07:18,347 And we have a really good set of adoption of KF6 and KDE, KDE 6 and KDE 6 in KDE. 78 00:07:18,647 --> 00:07:24,487 We see like a few applications using KDE 5, five, but we managed in a really 79 00:07:24,487 --> 00:07:30,867 short time to migrate most of them to 3DS6, which is good. 80 00:07:31,887 --> 00:07:38,467 Yeah. But there is a bit of a negative thing, is that we only have very little 81 00:07:38,467 --> 00:07:39,467 third-party applications. 82 00:07:41,947 --> 00:07:49,207 I mean, we managed to convert every third-party application through first-party 83 00:07:49,207 --> 00:07:51,387 applications, which is in some way good. 84 00:07:51,707 --> 00:07:55,287 But we don't, outside of the KDE bubble, like the inner KDE bubbles, 85 00:07:55,487 --> 00:08:01,067 we don't see a lot of third-party applications. 86 00:08:01,467 --> 00:08:04,227 I mean, there is a few of them. We had that at a previous presentation. 87 00:08:05,147 --> 00:08:07,347 I learned a few new names, which is good. 88 00:08:09,887 --> 00:08:15,047 But even third-party applications are often maintained by KDE people. 89 00:08:15,047 --> 00:08:24,827 I mean, for work, I also have maintained two third-party CAD applications and, yeah. 90 00:08:26,327 --> 00:08:30,407 And the maintenance level of each of our, even of first-party applications, 91 00:08:30,707 --> 00:08:33,147 it really depends on the application. 92 00:08:33,587 --> 00:08:40,087 Like for example, games, well games, games are mostly done, which is good. 93 00:08:40,247 --> 00:08:43,707 So they don't need a lot of maintenance. But there's like, for example, 94 00:08:43,727 --> 00:08:44,487 education applications. 95 00:08:44,907 --> 00:08:48,767 Some of them might need a bit more maintenance. 96 00:08:54,567 --> 00:09:00,927 Yeah, and why I'm talking about that is I did this sort of graph to analyze with the KDE community. 97 00:09:02,027 --> 00:09:10,327 And we can see that we had a peak around 2012, 2014. 14 and then it go a bit 98 00:09:10,327 --> 00:09:13,967 down, go a bit up, but it's mostly stagnant. 99 00:09:14,387 --> 00:09:19,687 Um, like, and this is like the number of authors, contributors. 100 00:09:20,347 --> 00:09:24,847 Um, I also have the same thing with the number of commits, which is maybe not 101 00:09:24,847 --> 00:09:27,407 the best metrics, but still it's quite telling. 102 00:09:27,527 --> 00:09:32,107 It's mostly flat and we want to have a bit of core. 103 00:09:34,806 --> 00:09:38,446 I mean, it's still improved a bit, like, it's last few years we had a bit of 104 00:09:38,446 --> 00:09:39,486 more improvement, which is good. 105 00:09:41,086 --> 00:09:46,306 Yeah, let's talk a bit about what we have. Currently, there's always this debate 106 00:09:46,306 --> 00:09:48,106 about widgets and QdQuick. 107 00:09:49,746 --> 00:09:53,546 I think both have their place. Like, if you had talked with me like two years 108 00:09:53,546 --> 00:09:56,206 ago, I would have said let's port everything to QML. 109 00:09:57,086 --> 00:10:04,106 Meanwhile, I discovered QdWidgets because I use that for work and yeah, 110 00:10:04,226 --> 00:10:06,586 it's actually not that bad, Qt Widgets. 111 00:10:07,726 --> 00:10:11,706 There is a few things I think it's easier to do with Qt Quick and a few things 112 00:10:11,706 --> 00:10:14,126 I think is easier to do with Qt Widgets. 113 00:10:16,326 --> 00:10:19,366 We will live with both of them for a long time. 114 00:10:20,446 --> 00:10:28,246 We have a desktop bridge, a Quick Controls style bridge which fix most of the 115 00:10:28,246 --> 00:10:31,266 styling issues choose between the two worlds. 116 00:10:32,226 --> 00:10:37,646 But I still think Qt Quick is vital if you want to do mobile applications for Plasma Mobile. 117 00:10:39,906 --> 00:10:47,286 And yeah, but I mean, the thing is often like Kigami is more mobile-centric, 118 00:10:48,326 --> 00:10:52,446 and Qt Widget is more desktop-centric, and we need to try to bridge that. 119 00:10:53,066 --> 00:10:56,786 And I tried to do that with Kigami Addons. I already added a lot of features 120 00:10:57,066 --> 00:10:59,426 for doing more desktop applications, 121 00:11:00,226 --> 00:11:04,046 like a comment bar where you can find all the actions available, 122 00:11:04,766 --> 00:11:09,246 shortcut editor, and stuff like that, which are quite vital for desktop applications, 123 00:11:09,886 --> 00:11:12,506 for getting really productive within applications. 124 00:11:13,266 --> 00:11:17,066 And as well, I could do a lot of more stuff for mobile, like form cards, 125 00:11:17,166 --> 00:11:22,626 who have a layout for it, which work for mobile with good enough touch surface. 126 00:11:24,553 --> 00:11:28,993 Yeah, we have a quite good CI CD in Caddy. 127 00:11:29,813 --> 00:11:33,733 It's super easy to get our applications deployed for other platforms, 128 00:11:34,613 --> 00:11:40,953 mostly thanks to the people like Volker, Ben, and Ovas, and Anna, and Julius too. 129 00:11:42,253 --> 00:11:47,593 It's really good. Like you can see, you can deploy for AppImage, 130 00:11:47,733 --> 00:11:49,153 macOS, Windows, Flatpak. 131 00:11:49,653 --> 00:11:55,653 It's quite good. We have one issue is that for continuous integrations, 132 00:11:55,753 --> 00:11:58,173 we do have a lot of platforms. 133 00:11:58,573 --> 00:12:01,953 For delivery, we are a bit less good. 134 00:12:02,773 --> 00:12:06,633 We produce packages, but we don't expose them to the users. 135 00:12:07,213 --> 00:12:10,793 We only have a few applications in the Windows Store. 136 00:12:11,193 --> 00:12:15,293 Event Talk, we have a lot of applications which compile, so Windows. 137 00:12:15,293 --> 00:12:25,293 And there's a last step which we need to finish so that our applications are deployed. 138 00:12:26,093 --> 00:12:31,713 Like on Flatpak. For Flatpak, every time we get an update, 139 00:12:32,473 --> 00:12:41,113 a few days later, one week later, we get all these updates to the users. 140 00:12:41,113 --> 00:12:46,773 And for other platforms like Windows, I had to take a look at the NeoShad version, 141 00:12:47,033 --> 00:12:49,253 but I think it's a bit outdated already in the Windows Store. 142 00:12:49,953 --> 00:12:54,373 And we need to make that a bit easier. 143 00:12:57,413 --> 00:13:02,733 Yeah, release tooling. I've been pushing a lot to move more applications to 144 00:13:02,733 --> 00:13:09,773 the release service, which is a really great thing for us to be able to release 145 00:13:09,773 --> 00:13:11,313 all of our applications all the time. 146 00:13:11,913 --> 00:13:16,173 Because we had a lot of issues with some applications that were not released for years. 147 00:13:17,013 --> 00:13:21,473 And ensuring that we get to release regularly with some bug fixes, 148 00:13:21,713 --> 00:13:24,513 some translation updates is good. 149 00:13:25,453 --> 00:13:30,453 And we need to do that more. There are some talks about modifications of the 150 00:13:30,453 --> 00:13:36,693 release cycles uh there's a buffer of that uh soon and yeah we are get we already 151 00:13:36,693 --> 00:13:43,073 got the automatic updates and we need to do that with more platforms i think 152 00:13:43,073 --> 00:13:44,213 android as well have that. 153 00:13:47,806 --> 00:13:53,486 And not just Natalie Wills. Yes, translation toolings, it's still based on SVN. 154 00:13:53,986 --> 00:13:58,526 And it's mainly based on Contribution Overflow. But for applications, 155 00:13:58,706 --> 00:14:01,126 we want applications to be translated in many languages. 156 00:14:02,806 --> 00:14:09,046 And we might want to think about how to make it easier to get more contributors in these areas. 157 00:14:10,546 --> 00:14:14,066 I tried some prototype. I mean, basically two ways to work with. 158 00:14:14,206 --> 00:14:17,706 Either we try to migrate completely to something new, like WebLates, 159 00:14:17,826 --> 00:14:21,026 or we try to build something which works with the current way. 160 00:14:21,246 --> 00:14:26,306 We are doing it, at least some prototypes with some web front-end for SVN. 161 00:14:27,006 --> 00:14:33,166 And yeah, it's some ideas that we might want to explore more. 162 00:14:36,346 --> 00:14:40,726 Yeah, user documentation. I don't know if you look at your user documentation 163 00:14:40,726 --> 00:14:47,126 for applications. applications, it's not that good. It's often really updated. 164 00:14:48,086 --> 00:14:55,846 The tooling for that is based on XML, which is not the best format if you want to get contributors to. 165 00:14:57,406 --> 00:15:00,326 And we also have some wikis which store a bit of information, 166 00:15:00,606 --> 00:15:06,786 which was basically used as a way to to do that in the wikis, 167 00:15:06,886 --> 00:15:10,386 and now we have a documentation split between two platforms. 168 00:15:11,286 --> 00:15:15,926 And the website for documentation is slightly a bit outdated. 169 00:15:16,886 --> 00:15:20,286 I mean, you can see the Caddy 4 logo there. 170 00:15:22,806 --> 00:15:28,826 Yeah, something to improve if you want to get really good applications, 171 00:15:28,826 --> 00:15:32,326 We also need sometimes to have at least a bit of documentation, 172 00:15:32,926 --> 00:15:39,446 maybe not complete manual like we used to do that, but at least a bit of documentation. 173 00:15:42,558 --> 00:15:45,478 Yeah, developer tooling. What is the set? 174 00:15:45,818 --> 00:15:51,498 Like we have a lot of developer tools in KDE, which might be explained by the 175 00:15:51,498 --> 00:15:53,258 fact that we are a lot of developers there. 176 00:15:54,738 --> 00:16:00,998 I mean like, for example, like Kate, KDEvelop, from IDE or text editors, 177 00:16:01,838 --> 00:16:03,638 Clazy to do static analysis, 178 00:16:04,478 --> 00:16:12,818 KDE source build to build all the software we want, Craft to deploy the software on many platforms. 179 00:16:13,758 --> 00:16:18,918 Ibtrack to do some memory usage analysis. 180 00:16:19,618 --> 00:16:24,998 F-Inspector to analyze the binary size of executables. 181 00:16:25,938 --> 00:16:28,498 Commit to do some git management. 182 00:16:30,038 --> 00:16:34,758 Compare to compare to display divs. 183 00:16:35,778 --> 00:16:40,678 CodeVis, to do architectural analysis of the whole software. 184 00:16:40,938 --> 00:16:42,258 You can see all the components. 185 00:16:42,558 --> 00:16:45,078 It's super fancy. It's quite new. 186 00:16:47,058 --> 00:16:49,958 CarbTemplate, to create a new application. It's like a small workflow. 187 00:16:50,178 --> 00:16:53,938 You want to start a new application, or you start it, you open CarbTemplate, 188 00:16:54,078 --> 00:16:56,718 and just take the template, and done. 189 00:16:56,858 --> 00:16:59,098 You have a basic structure of it. 190 00:17:00,018 --> 00:17:02,818 RCPT Inspector, if you want your application to be accessible, 191 00:17:02,818 --> 00:17:04,798 So it's good to have some tooling there, too. 192 00:17:05,218 --> 00:17:10,698 And whether it's not KDE from the KDE itself, but still bit KDE related, 193 00:17:11,038 --> 00:17:14,098 GameAway and Hotspot, which were developed by KDE developers, 194 00:17:14,358 --> 00:17:15,458 and are also open source. 195 00:17:18,981 --> 00:17:22,321 And I mean, speaking of Kerab templates, the first thing that changed is that 196 00:17:22,321 --> 00:17:24,401 it's now using Kigami, which is good. 197 00:17:24,801 --> 00:17:28,161 It was completely ported to Kigami. And I started to add more examples. 198 00:17:28,581 --> 00:17:35,061 So if you want to do multimedia management applications, basically you have 199 00:17:35,061 --> 00:17:42,481 a template for that, which gives you all the basic structure to do that. 200 00:17:43,561 --> 00:17:48,881 If you want to do a video games launcher, where you can see all your video games 201 00:17:48,881 --> 00:17:51,801 and you click on it and then it launches. It's nice. 202 00:17:55,181 --> 00:18:03,321 And maybe like Swift, for example, like Apple developed a lot of Swift playgrounds, 203 00:18:03,321 --> 00:18:06,821 which is basically sort of mixed between IDE and, 204 00:18:09,901 --> 00:18:16,441 IDE and live preview with a lot of tutorials or to interactively create an application 205 00:18:16,441 --> 00:18:19,441 and learn to program with that technology. 206 00:18:20,201 --> 00:18:23,681 And maybe something we should be inspired by that. 207 00:18:23,881 --> 00:18:28,441 I mean, there's a Gnome Workbench, which is a Gnome equivalent for that. 208 00:18:29,261 --> 00:18:33,741 And I try to do, like, as a smart prototype. Like, you see, can we do that? 209 00:18:34,341 --> 00:18:37,801 Can we do, like, some live previews? You can just edit your QML code, 210 00:18:37,961 --> 00:18:40,541 and then you see the results and then provide some examples. 211 00:18:40,541 --> 00:18:45,541 Samples, basic components of the interactive HFS. 212 00:18:47,501 --> 00:18:54,781 One issue is that the text editor is QML, which is not so good. 213 00:18:55,561 --> 00:19:00,781 So maybe it's a good idea to try to use a text editor for that instead of doing 214 00:19:00,781 --> 00:19:03,741 that in QML and just use QML for live view. 215 00:19:04,661 --> 00:19:08,421 Some ideas. Just try to explore some ideas where we could go, 216 00:19:10,581 --> 00:19:14,681 try to make it easier for people to get started with this technology. 217 00:19:16,848 --> 00:19:27,108 Yeah um like c++ i love c++ but not everyone does that and there's some inspiration about bindings, 218 00:19:28,048 --> 00:19:31,288 um there was a talk about joshua yesterday i was 219 00:19:31,288 --> 00:19:41,808 a host which i missed because i was in the other but there is also Darshan Paldesay 220 00:19:41,808 --> 00:19:49,988 who is working on some 6xQt binding space for the KDE frameworks, which is cool. 221 00:19:51,128 --> 00:19:57,368 And for Phyton, there is also talk from Christian yesterday about what they 222 00:19:57,368 --> 00:20:02,188 are doing in Qt. and we have a G-SARC project which is ending now, 223 00:20:02,348 --> 00:20:04,528 I think today is the last day, 224 00:20:07,428 --> 00:20:13,048 for doing the same thing, I mean, parasite-based bindings for the KDE framework, 225 00:20:13,208 --> 00:20:15,768 so we can also have that as an option. 226 00:20:17,008 --> 00:20:21,208 And there's maybe like other languages to consider. I mean, I think the Qt people 227 00:20:21,208 --> 00:20:26,368 are looking at C Sharp, maybe Swift, since Swift also has a good, 228 00:20:26,368 --> 00:20:28,348 Good story about C++ integrations. 229 00:20:29,428 --> 00:20:39,068 And yeah, things that we need to explore to see how people could build a new KDE application with. 230 00:20:42,228 --> 00:20:46,208 And we also need to do a bit more KDE developer outreach. 231 00:20:46,708 --> 00:20:51,848 Like we recently launched a KDE for developers web page, which is really cool. 232 00:20:54,168 --> 00:20:59,228 Thanks for everyone in the pro team for helping with that. And yeah, 233 00:20:59,368 --> 00:21:05,728 I mean, a set of marketing sites, I mean, there's a developerkit.org website, 234 00:21:05,828 --> 00:21:08,428 which is like, there's also a bit of promotion material, 235 00:21:08,768 --> 00:21:12,228 but also like a lot of documentations, 236 00:21:16,008 --> 00:21:21,148 for technical documentation about how to use KDE frameworks, 237 00:21:21,448 --> 00:21:27,228 how they interact with Qt, what features you can add to your application based on the KDE frameworks. 238 00:21:28,488 --> 00:21:35,528 I'm quite happy with that. I mean, I started to work there in 2019, I think, or 20. 239 00:21:36,468 --> 00:21:41,188 And I'm happy that I'm not doing that much anymore there. And there's new people 240 00:21:41,188 --> 00:21:42,908 going there and helping with that. 241 00:21:43,688 --> 00:21:48,868 So that's a nice project, which worked quite well, I think. Could be better, 242 00:21:48,968 --> 00:21:51,348 but I'm really super happy with the results there. 243 00:21:52,668 --> 00:21:58,468 I also have a mission to consider is what I do with Kigami add-ons is that every 244 00:21:58,468 --> 00:22:01,028 time I do a new release, I try to. 245 00:22:02,526 --> 00:22:06,886 What the blog post about the new features there or to use these new features with some code examples, 246 00:22:07,646 --> 00:22:11,406 and we should probably probably consider doing that with um the kd frameworks 247 00:22:11,406 --> 00:22:17,566 too because currently kd frameworks is basically just uh and that's i don't 248 00:22:17,566 --> 00:22:19,166 think anyone here with them, 249 00:22:19,746 --> 00:22:26,186 and we might want to spend a teeny bit more time to at least point out one a 250 00:22:26,186 --> 00:22:31,766 few big change a few big additions to the KDE framework so that people know about this change, 251 00:22:32,306 --> 00:22:34,786 and can make use of them. 252 00:22:35,386 --> 00:22:42,186 Because you only know about this change if you either maintain the frameworks, 253 00:22:43,066 --> 00:22:43,946 or you contribute the features. 254 00:22:44,886 --> 00:22:46,546 And yeah. 255 00:22:47,786 --> 00:22:52,066 Maybe it's a bit of effort, but I think it's worth it. 256 00:22:52,546 --> 00:23:00,306 What I've been doing a lot is to try to do social media Every time there is 257 00:23:00,306 --> 00:23:05,546 a challenge that affects developers, I try to post about it on social media. 258 00:23:06,466 --> 00:23:11,506 Mostly Macedon, because I only use Macedon, but if people use other platforms, 259 00:23:11,666 --> 00:23:12,546 they can also post there. 260 00:23:12,966 --> 00:23:16,486 Something that might be good for others to do the same. 261 00:23:17,166 --> 00:23:25,246 So, I mean, I do a lot and I'm hoping that other people could try to do more in that direction. 262 00:23:30,906 --> 00:23:38,266 Maybe we also could consider a third-party app program, a bit like Gnome Circle, 263 00:23:38,646 --> 00:23:41,126 where there's Gnome Core applications, 264 00:23:41,626 --> 00:23:47,346 which are not a lot of them, and then we have a lot of third-party applications, 265 00:23:47,746 --> 00:23:55,326 which can be used beyond GitHub, beyond the GitLab, basically basically anywhere where they want. 266 00:23:56,446 --> 00:24:02,306 And we have a few requirements, but it's less difficult to be part of the program 267 00:24:02,306 --> 00:24:07,206 than to be like a real first-party application for Gnome. And maybe we need the same thing. 268 00:24:10,169 --> 00:24:17,609 We just need to find a good name, decide on the process to add these applications 269 00:24:17,609 --> 00:24:22,389 to that program and see what advantages these applications have. 270 00:24:22,789 --> 00:24:27,129 Like, we should try to promote them, these first-party applications, 271 00:24:27,569 --> 00:24:30,649 on our official channels, even if they are not official applications. 272 00:24:32,649 --> 00:24:37,629 I've already been doing a bit of that. that, if you look at the KDE for page, 273 00:24:37,909 --> 00:24:41,129 like KDE for developers or KDE for artists or anything, 274 00:24:41,709 --> 00:24:47,909 you will always see at the bottom a list of other open source applications which 275 00:24:47,909 --> 00:24:53,909 are not KDE applications, but we recommend to users if they want to. 276 00:24:55,049 --> 00:24:59,669 I mean, that's part of the ecosystem. You don't need to promote your application. 277 00:24:59,669 --> 00:25:02,669 You will need to promote other applications to make it core. 278 00:25:04,529 --> 00:25:08,829 Yeah. But I think something we need to decide to, yeah. 279 00:25:08,969 --> 00:25:13,449 So if there are some people interested in that, let me know. 280 00:25:15,009 --> 00:25:19,729 OK. But outside of developer outreach, we also maybe want to do a bit of user 281 00:25:19,729 --> 00:25:23,589 outreach, more weekly news about applications. 282 00:25:24,149 --> 00:25:30,029 Like, currently, there's a this week in Cade thing, which mostly is about Plasma 283 00:25:30,029 --> 00:25:35,649 and a few selected applications, like Dolphin, Okula, Kate, which is, 284 00:25:35,669 --> 00:25:36,429 I mean, it's understandable. 285 00:25:36,689 --> 00:25:40,569 Net doesn't have enough time and energy to do that for every application. 286 00:25:43,162 --> 00:25:47,842 Okay, it's not Plasma. No, only Plasma. Okay. But yeah, we might need to do 287 00:25:47,842 --> 00:25:50,562 something for applications and spread the workload. 288 00:25:52,222 --> 00:25:55,982 It's a thing. It shouldn't not only be Net or me. 289 00:25:56,162 --> 00:26:01,122 It should be like a community thing with a group of people taking responsibility for that. 290 00:26:02,022 --> 00:26:08,782 And yeah. And maybe we should adopt something like TGP matrix or TGP sync norm 291 00:26:08,782 --> 00:26:12,662 where it's basically every developers which post their update on that blog post 292 00:26:12,662 --> 00:26:17,762 which is like maybe like two lines of text was that enough and as maybe social 293 00:26:17,762 --> 00:26:20,382 medias to try to promote our applications, 294 00:26:21,182 --> 00:26:27,282 more there or maybe probably both actually like we should probably do both and 295 00:26:27,282 --> 00:26:32,442 go in a bit of every direction and see which what works most and what works 296 00:26:32,442 --> 00:26:35,602 less yeah i mean like for example for the social media, 297 00:26:35,802 --> 00:26:37,962 created that my personal account, 298 00:26:38,282 --> 00:26:42,622 which post, I mean, the idea was to post regularly about new applications. 299 00:26:43,062 --> 00:26:47,302 Uh, for the moment I only did that once, but there's some post plant. 300 00:26:47,542 --> 00:26:53,542 I mean, I really like, uh, just like promote like bit of more niche applications, 301 00:26:53,842 --> 00:26:59,582 like Ktorrent, um, which is like one of the big KDE applications, 302 00:27:00,142 --> 00:27:01,962 but it's actually super powerful. 303 00:27:01,962 --> 00:27:06,722 Like if you look at it, there's a lot of plugins where you can search for torrents 304 00:27:06,722 --> 00:27:09,062 with a web browser embedded. I mean, it's super powerful. 305 00:27:10,962 --> 00:27:13,022 But yeah, not many people know about it. 306 00:27:15,922 --> 00:27:26,602 Yeah yeah and also on flattop there's a quality program where applications which 307 00:27:26,602 --> 00:27:28,662 meet the standard requirements for 308 00:27:28,662 --> 00:27:35,282 quality are then promoted to their own homepage of flattop and i've been, 309 00:27:36,162 --> 00:27:42,502 doing a lot of polishing there towards upstream metadata um again would be nice 310 00:27:42,502 --> 00:27:44,382 if it wouldn't be only me there. 311 00:27:47,902 --> 00:27:51,822 I mean, for example, just ensuring that the screenshot is updated, 312 00:27:52,322 --> 00:27:56,702 making sure that the text is there, that we have some good information. 313 00:27:58,762 --> 00:28:03,462 It's not a lot of work, but it's 200 applications where we need to do the work, 314 00:28:03,582 --> 00:28:11,682 so if we could spread the workload, out will be nice yeah and let me ask some 315 00:28:11,682 --> 00:28:15,962 questions to the audience um who here is using dolphin, 316 00:28:18,102 --> 00:28:26,442 that of you that's good uh who here is using falcon or angelfish ah a few okay that's good. 317 00:28:30,882 --> 00:28:35,722 Camel or mackerel? Oh, I actually caught a bit of you. That's more than I expected. 318 00:28:39,082 --> 00:28:45,002 Caligra? Oh, there is a few. That's interesting. 319 00:28:49,142 --> 00:28:51,622 I mean, this presentation was done with caligra? her? 320 00:28:55,282 --> 00:29:02,362 Yeah. And who is using Plasma Mobile? Oh, well, that's more than expected. 321 00:29:05,682 --> 00:29:09,922 Yeah, I wish we would try to use our application more to dog food train, 322 00:29:10,142 --> 00:29:15,522 like, how can we convince our users to use these applications if, 323 00:29:15,562 --> 00:29:17,182 who says we are not using them? 324 00:29:18,062 --> 00:29:25,622 And, I mean, I'm Me doing my presentation with Kaliha, I found numerous bugs there. 325 00:29:26,542 --> 00:29:33,742 No crash, which is good. But still, numerous bugs, like the PDF export is not good, 326 00:29:35,862 --> 00:29:39,182 if you saw the exported PDF in the channel. 327 00:29:40,242 --> 00:29:46,602 But it's fixable. And if you try to use more other stuff, like, 328 00:29:46,682 --> 00:29:49,982 for example, Android, like there's There's a lot of KDE applications. 329 00:29:50,282 --> 00:29:54,682 You don't need to use PaaS Mobile to try to use these Android applications. 330 00:29:55,842 --> 00:30:01,982 It's really great. If you want to scan QR code, there's QRCR, 331 00:30:02,282 --> 00:30:05,462 which also do a lot of cool things there. 332 00:30:06,222 --> 00:30:11,762 And the more we use the application, we might be tempted to fix a few things 333 00:30:11,762 --> 00:30:14,222 and to improve them. And yeah. 334 00:30:17,110 --> 00:30:21,250 Yeah, and I mean, this thing, like, try to improve the KDE ecosystem is related 335 00:30:21,250 --> 00:30:26,070 to, basically, I saw the list of goals from the previous years, 336 00:30:26,230 --> 00:30:29,210 from three years, and it's basically related to all the goals. 337 00:30:30,890 --> 00:30:34,850 Even Wayland, like, having good support for Wayland in the application is also important. 338 00:30:38,590 --> 00:30:42,670 Consistency, accessibility, really, 339 00:30:42,770 --> 00:30:45,530 like, it's all, I mean, all the goals are related to make the 340 00:30:45,530 --> 00:30:50,190 application ecosystem of KDE better and yeah 341 00:30:50,190 --> 00:31:00,010 yeah that's it if you want to contact me these are my contact details um yeah 342 00:31:00,010 --> 00:31:05,670 and you can also talk with me um in academia or in class, 343 00:31:12,490 --> 00:31:16,430 Yes. Questions. We have questions. 344 00:31:19,570 --> 00:31:21,810 A lot of questions. 345 00:31:29,270 --> 00:31:34,690 You said about KDE applications and third-party applications. 346 00:31:34,790 --> 00:31:35,650 So if you want to use the third-party applications, you can use the third-party 347 00:31:35,650 --> 00:31:39,650 applications. If you make an application tightly related to KDE, 348 00:31:39,850 --> 00:31:45,050 what are the benefits to market as a third party and not as a KDE software compilation? 349 00:31:48,690 --> 00:31:54,550 That's a good question. I mean, originally we had the brand KDE Applications, 350 00:31:54,710 --> 00:31:56,470 which was used for the release. 351 00:31:57,550 --> 00:32:03,810 We tried to distance that a bit because it was not even all the applications, 352 00:32:04,530 --> 00:32:09,710 released by KDE, all of them were included in that release cycles thing. 353 00:32:10,130 --> 00:32:11,850 So we tried to distance that a bit. 354 00:32:12,550 --> 00:32:14,790 Um, yeah. 355 00:32:21,909 --> 00:32:25,989 I mean, if you are using KDE frameworks and not part of KDE. 356 00:32:26,289 --> 00:32:30,509 Yeah, so if I create an application that is very related to KDE, 357 00:32:30,669 --> 00:32:35,709 it's better to include it into KDE Suite instead of marking this, 358 00:32:35,809 --> 00:32:39,829 okay, it's a third-party application, we are not related to KDE. 359 00:32:40,429 --> 00:32:45,909 I mean, the thing with KDE applications is that there is a lot of requirements. 360 00:32:46,409 --> 00:32:54,749 You need to use all translation systems, You need to pass KDE review. 361 00:32:55,049 --> 00:32:57,589 There's a lot of requirements. 362 00:32:58,589 --> 00:33:03,169 And these requirements might not be for every application. I mean, 363 00:33:03,189 --> 00:33:06,109 even if you want to do a sort of dual licensing model, 364 00:33:08,729 --> 00:33:14,469 there's some really good reasons why you don't want to have applications as KDE applications, 365 00:33:14,729 --> 00:33:19,569 but still use KDE technologies, technologies and still be promoted to the KDE 366 00:33:19,569 --> 00:33:26,349 community as these applications works well with Plasma and that's something 367 00:33:26,349 --> 00:33:30,769 we try to promote these for the applications, 368 00:33:31,109 --> 00:33:35,149 not completely as a KDE applications, so we don't take too much responsibility 369 00:33:35,149 --> 00:33:37,969 for them, but see like their path. 370 00:33:40,895 --> 00:33:48,055 Hey Carl, so simple question, obviously you're into apps and you've created 371 00:33:48,055 --> 00:33:51,135 a butt-ton of them. When are you going to finish them all? 372 00:33:53,335 --> 00:33:58,895 Yeah, I'm quite good to start new applications. I'm a bit less good to finish them. 373 00:33:59,655 --> 00:34:06,535 I mean, as a state where I'm happy with applications and for ARIANA, 374 00:34:06,675 --> 00:34:11,875 for example, I think the application is mostly done, where it's just a project 375 00:34:11,875 --> 00:34:12,515 to change the rendering, 376 00:34:12,815 --> 00:34:17,035 but all the basic features are there. I'm happy with that. 377 00:34:17,395 --> 00:34:21,275 And then it doesn't need a lot of maintenance work just to keep it working, 378 00:34:21,575 --> 00:34:27,875 keep it putting away from the latest applications, maybe tweak a bit the UI, 379 00:34:28,435 --> 00:34:30,815 get some feedback for the users, fix the bugs. 380 00:34:30,995 --> 00:34:36,115 But at some point, there are some applications which are done. 381 00:34:36,115 --> 00:34:43,035 And like really i like to do those more applications which yeah yeah. 382 00:34:45,915 --> 00:34:49,475 Okay so um one thing 383 00:34:49,475 --> 00:34:58,895 i've seen in kdfs is that there are some applications emerging that that seems 384 00:34:58,895 --> 00:35:06,755 to do the similar things as already well-established app. 385 00:35:07,555 --> 00:35:11,135 I think one of the examples is Angelfish. 386 00:35:12,375 --> 00:35:16,375 I think we already have a web browser, 387 00:35:16,575 --> 00:35:23,555 Conqueror, and I really like the UI design of Conqueror and the functionalities 388 00:35:23,555 --> 00:35:29,095 of Conqueror is very rich, including a very important aspect, 389 00:35:29,255 --> 00:35:31,715 that is, it allows you to customize. 390 00:35:35,656 --> 00:35:39,076 My shortcuts um but you 391 00:35:39,076 --> 00:35:42,316 know there's angelfish which got started and it 392 00:35:42,316 --> 00:35:45,476 doesn't use k parts it doesn't allow 393 00:35:45,476 --> 00:35:48,856 you to customize shortcuts i feel that 394 00:35:48,856 --> 00:35:52,956 might you know i don't 395 00:35:52,956 --> 00:35:55,956 think it's a very good thing 396 00:35:55,956 --> 00:35:59,536 to like rewrite things from scratch that 397 00:35:59,536 --> 00:36:02,636 uh you know doesn't make use of 398 00:36:02,636 --> 00:36:05,936 existing knowledge and I feel 399 00:36:05,936 --> 00:36:10,176 you know the time and 400 00:36:10,176 --> 00:36:18,736 resources might be used to make say make concord better for like mobile users 401 00:36:18,736 --> 00:36:26,576 or etc yeah I mean I think that's part of my first idea with ecosystem you have 402 00:36:26,576 --> 00:36:28,376 some cooperation and competitions. 403 00:36:29,036 --> 00:36:33,336 And I think if you have a wide balance, it can be quite healthy for the ecosystem. 404 00:36:34,916 --> 00:36:42,496 I think a good example for that is Mercuro, which is like a KDE PIM representation in Qt Quick. 405 00:36:44,416 --> 00:36:48,496 But it's using, basically, all the libraries of the existing stuff. 406 00:36:48,756 --> 00:36:53,756 Like it's using ,, it's using to pass events. 407 00:36:54,796 --> 00:36:56,556 It's using all the ecosystem already. 408 00:36:58,056 --> 00:37:02,176 And having these two applications which compete a bit, like, 409 00:37:02,236 --> 00:37:08,576 I try to not market it as a competition, but it is a competition. I mean, it is what it is. 410 00:37:11,516 --> 00:37:15,436 But having Merkur in the ecosystem has improved a lot of Equality, 411 00:37:15,656 --> 00:37:19,316 which results in improvement to Camel and to Karganizer. 412 00:37:20,796 --> 00:37:28,196 And I think as long as you try to reuse components and to try to make them, 413 00:37:28,276 --> 00:37:31,376 it's fine to have competitions even inside the community. 414 00:37:34,836 --> 00:37:40,856 And for EngineFish, I mean, the reason why EngineFish exists is because of mobile. 415 00:37:41,036 --> 00:37:46,636 You cannot just conquer on mobile phone and you need a browser on your phone. So that's it. 416 00:37:50,176 --> 00:37:53,956 All right, testing, testing, one, two, three, okay. 417 00:37:54,436 --> 00:38:00,216 So I wanted to make a comment on one of the earlier slides and that is on how 418 00:38:00,216 --> 00:38:04,456 to get more contributions, more young blood into the projects. 419 00:38:06,036 --> 00:38:08,436 In QPrompt, I've had a. 420 00:38:10,657 --> 00:38:17,897 I haven't been able to, I can't expect people to go into the code and contribute 421 00:38:17,897 --> 00:38:23,497 very often because most of the people in the particular target audience, 422 00:38:23,617 --> 00:38:25,677 that community, they are not developers. 423 00:38:26,517 --> 00:38:34,337 So what I've done is put some web platforms that are very accessible. 424 00:38:34,337 --> 00:38:38,557 For example, in the translations website, I'm using WebLate, 425 00:38:38,697 --> 00:38:43,877 and with WebLate, it's integrating directly to K-internationalization, 426 00:38:44,157 --> 00:38:48,997 and all of the translations are done through there, and it's a great experience. 427 00:38:49,877 --> 00:38:55,197 And I think you could do the same, like look into how I did the setup with WebLate 428 00:38:55,197 --> 00:38:58,857 and copy it over, and feel free. 429 00:38:59,957 --> 00:39:02,677 And I've also done something similar for documentation. presentation there, 430 00:39:02,857 --> 00:39:10,617 it's a, I forgot its name, I think it's a, essentially people just write Markdown 431 00:39:10,617 --> 00:39:13,157 and they get a PDF. Works great. 432 00:39:14,417 --> 00:39:19,597 Yeah, I mean, I think we need more translators, like to reach more people with 433 00:39:19,597 --> 00:39:20,837 applications, we need more translators. 434 00:39:21,717 --> 00:39:25,537 I'm not happy with the QN workflow. I don't think anyone is really happy with that. 435 00:39:25,737 --> 00:39:30,297 It's just a lot of work and you need to be, try to be compatible with the QN1. 436 00:39:30,297 --> 00:39:33,857 One, the equation is a bit complicated, that's why I try to do like a sort of 437 00:39:33,857 --> 00:39:37,437 web thing based on the existing stuff. 438 00:39:38,777 --> 00:39:43,437 I mean, we need to discuss that at some point and I don't think there's a perfect solution. 439 00:39:43,717 --> 00:39:49,257 And yeah, but yeah, like if you want to get more users, we need to be available 440 00:39:49,257 --> 00:39:53,477 in more language and that needs more translators and you need to make the job 441 00:39:53,477 --> 00:39:55,637 for the translators as easy as possible.