Show HN: Drovp – Convenient UI for any drag and drop operations
drovp.app
drovp.app
Congrats on the release!
P.s. obligatory ‘no more electrons in my App folder thanks’ :(
It might also be a matter of taste but I could not justify another 200Mb Electron app for such low-level tasks. I guess I will stick with "Open terminal here" command for a while!
Sorry if off-topic, but is it possible to create native cross-platform apps that look like this without using electron & co?
I've played around with Qt, and the applications just don't look that good to me. And flutter for Desktop, while promising, just looks like mobile apps on desktop.
Vanilla Qt (no QML) supports a decent subset of CSS(QSS) that can target widgets and objects etc. It's quite a bit of work if you're just getting started but it just comes down to knowing what to override, disable and what can be styled etc. In extreme cases where the native widgets are limiting you can just draw your own. I believe you could recreate about any interface with just Qt.
Three random apps of mine that use Qt and all look different but if you grok the src you can get an idea of what I mean.
1. https://github.com/iKlsR/Markr (https://github.com/iKlsR/Markr/blob/main/src/res/style.qss)
2. https://github.com/iKlsR/Playground
3. https://github.com/iKlsR/SDFSandbox (This one uses custom drawing for the node widgets)
It's probably Material Design "looks like mobile apps" on desktop, not Flutter itself.
Flutter gives you all the tools and flexibility to style and design your app as you wish. I'm developing Desktop apps in Flutter for 2 years now and I think it's the best thing that happened to desktop UI development since Qt in early 2000.
“Drovp” cannot be opened because the developer cannot be verified. macOS cannot verify that this app is free from malware.
I've got it working smoothly but I am in no way proud of my code. Super brittle. Basically resorted to a pub-sub system that works like so:
1.) mouseDown on a draggable component causes a global onMouseMove handler to be turned on, so that moving your mouse moves the component.
2.) mouseUp fires a drop event through the pubsub system with the data of which card was being dragged.
3.) Various instances of a dropzone component are subscribed to that event, and they compare the coordinates of the event with their own to see if they are where the card was dropped.
4.) If the coordinates match, a call to the server is made adding the card to that location and removing it from its original location.
That's the basic flow. A ton of complexity has arisen around it. I just couldn't find a better way.
https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_a...
I wonder if a different UX would help? Like clicking on a card and clicking on the drop target instead of dragging it? It would be less tactile but also a lot nicer on a trackpad.
Maybe try a different heading and add a short paragraph under it to explain more? Text along the lines of "desktop app that automates tasks like X, Y and Z and lets you quickly create your own custom automation flows" would have helped me.
I feel like this is a common thread these days: to double-down on the idea that nothing else exists except for $THING_I_CARE_ABOUT.
Be it hackernews and the USA, JavaScript developers and... well, everything.
This almost takes the cake. I've written GUI apps with MFC, Qt, tcltk, Python, GTK, KDE, immediate mode GL and DirectX UI libraries...
I don't write JavaScript, don't use NPM, don't build electron apps, and all this webpage tells me, without even using the words, is to go fuck myself.
edit: I still don't understand what this is.