4 ms·
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 c
by rubymamis 3y ago
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 painfully slow. This is why I'm building a Notion alternative in Qt C++ and QML[1].
[1] https://www.get-plume.com/ https://www.get-plume.com/
EDIT: Is the app down? It doesn't load the "Browse" content for me.
- icy 3y agoPlume looks so sick. Looking forward to it. A Vim-like modal editing mode would be so cool, I think.
- rubymamis 3y agoThanks! I heard many requests for this, so I'll consider it, but if I do get to that it will be at a later stage.
- _kwef 3y agoWeird, it takes up ~150MB while having a 500+ song playlist loaded.
- prg318 3y agoTo respond to your edit, yes - it seems like the app is down - nothing seems to load at all on the Browse tab or anywhere else...
- olah_1 3y agoPlume looks nice! How does the sync work? Local first rocks, but I do want some redundancy as well. Are there plans for multiplayer or sharing?
- rubymamis 3y agoThanks! One of the next features we'll on work will be support for arbitrary folders (basically all notes will be plaintext inside folders, currently they are all plaintexts but inside a local database), so you could sync your notes with any cloud provider (e.g., Dropbox). We'll also provide our own built-in sync option. There are plans for sharing notes, but not quite for real-time collaboration, if that's what you mean by "multiplayer". There are plans for collaboration in the future, but not real-time - I just don't think real-time collaboration is good for text-based formats.
- jhatemyjob 3y agoComing 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 (Ripcord, Dolphin) are fast but the aesthetics of the UI was just terrible. So I gave up on learning Qt. But this thing you made, Plume, actually looks good. If there isn't a monstrosity of hacks and boilerplate underneath this UI I might give Qt another shot. Otherwise I think I might just build my own thing from scratch on top of OpenGL or something....
- rubymamis 3y agoI feel ya! I thought the same, until I discovered the world of combining Qt C++ and QML. QML is extremely easy to learn (I studied all the basics in one day using this Udemy course[1] (not affiliated, just love his work). BTW, he has many free awesome YouTube videos for Qt C++. Creating an aesthetically pleasing app in any framework takes a lot of effort (it's mostly about being focused on what necessary and then creating a lot of white space around it, haha). It's so easy to create beautiful, fluid UI with QML. I've created a short video that demonstrate what I'm working on currently[2] - a Kanban view inside my block editor (kinda buggy now, still WIP). Hopefully, this does inspire you that it's possible. 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/ https://www.udemy.com/course/qml-for-beginners/ [2] https://www.loom.com/share/b40009316f6b420b9ece15a1f99e987c https://www.loom.com/share/b40009316f6b420b9ece15a1f99e987c [3] https://github.com/stdware/qwindowkit https://github.com/stdware/qwindowkit [4] https://twitter.com/mamistvalove https://twitter.com/mamistvalove [5] ruby AT mamistvalove DOT gmail
- chaxor 3y agoYeah, electron is so over. Now tbe modern tech stack is to build a bash+python app in an env, add a touch of R, some js, and bundle it into docker container, then make that docker container into wasm with container2wasm, and give that out as the executable. It's wonderful honestly. You can get just about anything working with stitching together stuff, and then serve your 10GB executable to anyone :). So MuCh BeTtEr ThIs MoDeRn WaY!
- dv35z 3y agoSerious question: What's the feasibility of local web apps in containers, which appear to the user to be a "regular" app. E.g. Django + SQLite, running in a Docker container, and run by a Mac app shortcut. How would you recommend setting up and running that stack? Better ideas?