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.

