Replies: 1 comment
-
Lot of questions. I'm not a member of the Slint team, and can't really answer most of them, but I might be able to provide an insight into some of them until a member of the Slint team comes and gives you better answers.
The way I understand it, if using Rust or C++ the, Slint code is compiled down into Rust/C++, so it should be pretty performant, and the Slint dev's have some demo's showing it can be used one some resource constrained devices. I've personally never done embedded development, so I can't really add anything here. In compared to Qt, if using Qt widgets, since it's raw C++ I imagine it would be similar, but I don't have any comparisons. Compared to Qml, which I imagine would be better suited for an IVI, Qml is interpreted so, I'm pretty sure it's slower. You mention in question 4 about JS/Typescript, I'm pretty sure with JS the Slint code is interpreted, so I assume it would be slower, than when compiled to Rust or C++, but I don't have anything to back this up....this is stretching my knowledge here.
Since Slint just focuses on being a UI toolkit and DSL (unlike Qt which is an entire ecosystem), as far as I understand there would be no direct support for OTA in Slint, but also no reason it shouldn't work. I know the project has partnerships with Toradex, and I think I saw something once about Slint project running on top of Toradex's Torizon distro and supporting OTA, but I can't say for certain.
If using some of the builtin components such as the standard Button, you might be limited to the built in styles (Fluent, Material, etc). I think they are working on adding more styling options, but they aren't released yet. You can create your own buttons and such from scratch and make them fully theme-able. My project Tomotroid is a good example of this. All the buttons, and the window frame are custom made using Slint, and are fully theme-able, with the colors being swapped at runtime from JSON theme files.
Referring to what I said in response to question 6, loading themes as needed should be easy. In Tomotroid I only change the colors, and do some colorization, and color swapping in some SVG files that are bundled in the executable, but I see no reason these images couldn't be loaded at runtime either. In regards to loading features dynamically, this one I'm less sure about. Since if using a Rust/C++ backend the Slint code is compiled down into native code, loading features dynamically is probably a bit more tricky, and I haven't tried it. If you know of the feature in advance, and and code it up and then just enable/disable at runtime that's probably easy, but adding a new feature after the fact, I don't know. You can use an interpreter for Slint from within Rust or C++, or there might be a better way. Probably best to wait for an answer from the Slint devs on this one. Hopefully his info helps you out a little bit while waiting for a better answer |
Beta Was this translation helpful? Give feedback.
-
Hi there,
We’re exploring SLINT as the UI framework for our next-gen automotive platform, covering infotainment, clusters, HUBs, and secondary screens (if present in the car model). We’d love your insights on why SLINT might be the best fit compared to Qt, Flutter, Kotlin Multi-Platform, or React Native. Our main focus areas include:
Thanks for your time and insights! If this works out, I’ll owe you a coffee, or maybe even a car-shaped cookie.
Beta Was this translation helpful? Give feedback.
All reactions