Earlier quoted context omitted.
Yep. This app uses 230mb of RAM on my machine compared to Spotify that uses 208mb. But it's definitely more performant than my hideously slow Electron Spotify client. I'm really done with Electron. I hope this shaming of Electron apps continue because I can't stand this degradation of software. The only Electron app of recent that had good performance is Notion Calendar (used to be Cron). Although, Notion itself is p…
Coming from AppKit/UIKit I tried to learn Qt and it was just awful. I hated how tightly coupled with C++ it was. Everything was based around subclassing and overriding methods, there was no way to just have a dumb UIView and set its frame and add a bunch of subviews to it. There was also no clean way to expose a C ABI to use a scripting language (with an FFI) to configure the UI easily All of the Qt apps I know about…
And it's actually pretty easy to write the C++ code. I don't really use custom sub-classing much. I use Qt's QtObject which allows me to create C++ object that work beautifully with QML. Bryan's course doesn't delve deeper as that, I had to do a lot of searching to figure it out. I hope to open source some of Plume's components to inspire others to do the same. Another point regarding aesthetics, it really takes effort, but Qt can be extended using community libraries. For example, if you want your app to look native on macOS and Windows with a sexy frameless border with a transparent window, then you could use the awesome qwindowkit[3]. Another example, I wanted to position the window buttons on macOS (the traffic light buttons) differently, but couldn't figure it out, and obviously this can't be done using Qt alone, so I looked at Electron's source code and saw how they do it there in Objective-C and incorporated it in my app (ChatGPT-4 wasn't very helpful at that). Now I really want to have these buttons' fill color transparent like Things 3 does, so I'm looking at how to achieve that haha. I already got some ideas. If you need any further help, let me know![4][5].
EDIT: A cool feature of combining Qt C++ with QML is that you get the performance of a compiled language like C++ with the reactivity, ease-of-use, fluid and easy animations (and more) of QML. You can see on Plume's website that it's 4x faster than the fastest comparable native app on macOS.
[1] https://www.udemy.com/course/qml-for-beginners/
[2] https://www.loom.com/share/b40009316f6b420b9ece15a1f99e987c
[3] https://github.com/stdware/qwindowkit
[4] https://twitter.com/mamistvalove
[5] ruby AT mamistvalove DOT gmail