Slint: Are we GUI yet?
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61642 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Embedded systemKey (cryptography)Ocean currentState of matterDampingProblemorientierte ProgrammierspracheMacro (computer science)Open sourceWeb browserFormal languageBitLibrary (computing)CASE <Informatik>LogicCodeDemo (music)Programming languageExtension (kinesiology)Keyboard shortcutVisualization (computer graphics)Projective planeSoftwareProcess (computing)Service (economics)Diagram
02:42
InformationExtension (kinesiology)MaizeCodeVisual systemPressureWrapper (data mining)Visualization (computer graphics)Formal languageCommunications protocolServer (computing)Program flowchart
03:03
Augmented realityDisintegrationWindowCodeType theorySymbol tablePower (physics)Multiplication signText editorMacro (computer science)Extension (kinesiology)DemosceneCategory of beingServer (computing)Computer animation
04:20
Computer virusDifferent (Kate Ryan album)WindowDifferenz <Mathematik>Source codeComputer animation
04:46
Euclidean vectorCategory of beingMenu (computing)Queue (abstract data type)Letterpress printingDemo (music)CountingArithmetic meanCategory of beingWeb browserComputer animation
05:50
Demo (music)GUI widgetGame controllerGoodness of fitMacro (computer science)Video projectorProgram flowchart
06:05
Web pageBitProjective planeOpen sourceComputer animation
06:35
Finite element methodOpen sourceCategory of beingSoftware developerFormal languageRevision controlSoftware bugPresentation of a groupProjective planeOpen setSoftware
08:23
Program flowchart
Transcript: English(auto-generated)
00:05
So now we have Olivier. He's going to talk about Slint. Hello, yep So about me, I started open source working on contributing to the KD project Which is a project made with Qt So that led me to be hired as my first job at Trolltech, which was a company making Qt, later bought by Nokia
00:27
but in two thousand ten years ago, I left to create my own company software services and and still I had a little... I was still a bit in the Qt ecosystem and I was talking with Simon Hausmann also from from Qt and we were like
00:43
The sad state of current desktop UI. Can we do better? What would happen if we would create a new UI toolkit from scratch and in 2020 then We created Slint. So this is Implemented 100% almost in Rust
01:01
Which is not... almost... most of it is implemented in Rust It's a native toolkit So native as opposed to runs in a browser. So it really runs natively and it's aiming at Desktop and embedded at first and so it uses its own domain specific language
01:26
So it's like a macro and you might say wait is this I wanted to To develop in Rust and now you're saying I need to learn a new language to do UI and it's it's yep, but
01:41
Fortunately learning this language is not more difficult than just learning the API of any other any other library. So just Just like learning an API and Rust is not really meant for UI There is a lot of ways that Rust is a bit too explicit in some cases where for UI you just want to describe the UI in a really
02:01
More in a way that that all language is much better at and then This thing is only to describe the user interface, but all the logic of course is written in a programming language so for example Rust, but we also have bindings to Various languages like C++ or JavaScript and we tend to add more
02:25
So, let's try to make a short demo I cannot do the demo because it's a lightning talk, but I just took some screenshots So let's just create a new project at slint as a dependency. There is a extension so this is visual studio code where we can install an extension we search slint there and
02:45
one click install and if you don't have visual studio code, it's okay because this is just a wrapper around a Language server protocol just LSP. So that works with most most editors And if you don't want to use a it is also it's all optional but let's go back to main.rs and add some
03:05
Some code here. We add our little macro. It shows a small window with a text and a button While typing that of course, I had the full power of this extension. So that includes auto-completion Go to symbol and everything else. We even have this little
03:23
Property editor there that we added But the But the coolest thing here is that we have this code lens show preview, let's click on this it can be a collection as well on other editors and a window up here and so the LSP server behind the scene opens a new window and
03:44
This is the preview of what you just typed and if you type it updates live So this is really interesting because when you do UI you really want to see What happens as you do you don't want to spend a long time compiling and stuff let's add a callback here btn underscore clicked and
04:04
in the rest code, we will instantiate our main window that we created from this macro and connect to it with the The generated on btn clicked. So this is generated by the macro and to have some so some first code can be called so
04:23
If we click and run the code, that's it we have we have the thing Here we see that the two the two windows and the screenshot have different Style that's because stain is stable the diff So we have for example the front style or we also have here a native style because we really want to
04:41
To be a native toolkit. So using the native style Let's add a property that we can set with Now in the callback we say set count get count plus one. So we added this property that we use in the text
05:01
properties are reactive meanings that when you When you change them they automatically change And and slint knows what what to refresh? So what can we do? So here is our little demo
05:23
Okay That works so this is this is Apparently not working really good in this in this presentation, but but the idea here that we would see you will see the demo Running on WebAssembly in the browser. So it's some it's meant to be a desktop framework, but it also runs for demo
05:43
On the browser and now Okay, so this doesn't look good on this with this projector. But again, this is a Gallery, which show a few controls
06:01
So what about the performance? How lightweight is it? So Here I have with me I have with me this macro controller So this is a Raspberry Pi Pico. It has three less than three kilobytes of ham. I said kilobyte not megabyte and
06:22
And yes, it's working. We have scrolling a bit some animations So that shows that shows what we can do. So the project is open source. It's entirely developed on github We accept requests
06:43
We also accept of course bug reports, please send a github issue open github issues The license the license is GPL for open source projects and we also a company so we want to make money out of it So that's why we have multiple license. So GPL for open source project and
07:01
We also have an ambassador license as we call it. It's it's a free license, which you can use for property Software you just have to To say that you're using slant and there is also a commercial license with support and so on
07:21
So in the future, we plan to after already three years of development We are now almost ready to release the version 1.0. So it's if all goes well It should be released this month end of February And the other thing we're working on is to improve our little preview there and to make it Like that you could drag and drop things I can talk with jets and have actually a design tool where
07:46
So even design your could do the design And without even touching the slant language So that's that's all I hope for the future So that's the end of my presentation. I hope that you got
08:04
That it made you want to try slants and please do contact me If you have any question, or if you're wondering if you can use slant, I'll be around please ask questions