The application uses exactly same code on all platforms: https://github.com/c-smile/sciter-sdk/tree/master/notes
It even runs on Windows 2000: https://sciter.com/necromancing-sciter-on-windows-2000/
I couldn't tell, just from glancing at the website/github.
UI, application logic and data storage.
QML is far not enough for this I think.
It took me 3.5 months ( https://notes.sciter.com/2017/09/11/motivation-and-a-bit-of-... ). But I shall admit that this does not include architecture time as I knew internal architecture of EverNote upfront.
I wrote a GUI editing tool using QML that had three main UI elements: a visualisation of the LEDs, a properties widget and a timeline. It also had start, stop, rewind buttons so you could play the animation back on the visualisation panel. The visualisation panel was also interactive to select individual leds. The timeline had time labels at the top which you could click to select a time and four “swimlanes” where you could draw the effects on, which controlled start time and duration (the rest of the parameters could then be set in the properties window, for the selected effect).
The led visualisation and timeline components were custom made (I don’t remember if they were made using custom QSceneNodes, QOainter or composed out of nested QML elements). The end result wasn’t particularly pretty, but I was going for functionality over look and the audience was limited to myself and one other person. The entire application (including the code to actually drive the leds, which ran on a raspberry pi, but shared code with the GUI tool to make the playback in the UI as realistic as possible) took 3 to 4 days. I’m sure given a few weeks I could have made it look really slick and given a few months could have made the UX something I would be happy to have other users use.
So I don’t know how long your application would take me, especially if it has to look identical to what you have, but I have been quite productive in QML, even when custom components were needed.
I’m not trying to say it would have been a better choice for you, though, just that I often find Qt and QML being under appreciated and underrated.
Although the Qt companies recent behaviour and aggressiveness in getting people to switch from open source to paid license had really put me off to the point where I’m not sure I’d use it for a new project, but those reasons are all not related to anything technical.
I do think Dart itself is a fine language, though.
I would actually say that it is perhaps the fastest in the list.
1.1k https://github.com/topics/pascal
The lack of sufficient developers who are familiar with Lazarus/Freepascal is a problem though. But again, this is a chicken and egg type of issue.
Getting up to speed in Lazarus does not take very long though because the IDE itself guides a person through in the components and you can clearly see the properties and components they have etc.
Compared to the challenge of wrangling many of these cross-platform frameworks to develop a desktop, it is a piece of cake in Lazarus.
Sadly, what keeps Lazarus back is the fact that most people aren't even aware that it exists and a perceived notion that it is not a cool/capable framework.
Qt is good but it requires you to go fully into the Qt ecosystem (build tools, etc) not sure about QML though.
For wxWidgets, there is wxUniversal, which draws custom controls, thus easier to customize - not sure how well it is maintained though.
I'd argue that dev time is quite fast for all - Qt, wxWidgets, Lazarus.
It is just that there are absolutely no standard platform widgets (at least on Windows) for this UI. https://notes.sciter.com/wp-content/uploads/2017/09/notes-sc...
And even if there are some, integrating them with what your app is needed will lead to some mess like here:
https://notepad-plus-plus.org/assets/images/notepad4ever.gif
Custom components a la Windows 2000, some in Windows XP with default styled Windows 8 stuff - the zoo.
What people initially miss about UI libraries is composition features. Which are over the top for QML and not so to put is softly for Sciter.
1. Sciter
- Languages: C++/Python/Go/Rust/Pascal (optional: HTML/CSS/tiscript)
- Development time: fast
- Resource usage: light (space and performance)
- Visual customization: easy, doesn't use native widgets.
2. Qt
- Languages: C++/Python (optional: CSS/JS/QML)
- Development time: slow
- Resource usage: quite heavy (space), but well performant
- Visual customization: QtWidgets: hard, QML: easy, doesn't use native widgets.
3. WxWidgets
- Languages: C++/Python
- Development time: slow
- Resource usage: light (space and performance)
- Visual customization: hard, uses native widgets.
4. Lazarus
- Languages: Pascal
- Development time: slow
- Resource usage: light (space and performance)
- Visual customization: hard, uses native widgets.
[1]: https://sciter.com/ - https://quark.sciter.com/
[2]: https://www.qt.io/
[3]: https://www.wxwidgets.org/
[4]: https://www.lazarus-ide.org/