5 ms·
Something has gone wrong somewhere when your file manager UI is written in React.
by trollied 3y ago
Something has gone wrong somewhere when your file manager UI is written in React.
- mrtesthah 3y ago[flagged]
- throwaway50702 3y agoSeems like a very nice app that works on multiple platforms, and it's even gifted to the community as open source. I don't know where you found the audacity to call something waste of time, but please keep it to yourself.
- threeseed 3y agoIt uses Tauri which is the Rust equivalent of Electron. I'm building an app using it now and it's significantly better than past attempts at browser-based, cross platform app development. It is extremely fast and efficient so apart from UI controls not looking the same it will be on par with a native app. And one of the big advantages for me is that I get to leverage Rust's excellent low-level capabilities e.g. cross platform SIMD support, io_uring with minimal investment.
- troupo 3y ago> t is extremely fast and efficient so apart from UI controls not looking the same it will be on par with a native app. It uses system-provided WebView (WebKit on MacOS and Linux, and Edge on Windows) to display the UI shell, so the UI portion will be just as slow as any Electron app.
- threeseed 3y agoSure but most of the issues with Electron apps aren't to do with the web layer. It's the fact that the app is so slow to launch, consumes ridiculous amount of resources, does not take advantage of the hardware, is unstable etc. And then when you're using the app all of the interactions are slow because NodeJS's concurrency is so poor. Rust and Tauri fixes all of those. It's not perfect but for a cross-platform app development library I've not seen anything better. Happy to be enlightened with alternatives.
- troupo 3y ago> It's the fact that the app is so slow to launch, consumes ridiculous amount of resources, does not take advantage of the hardware, is unstable etc. You've just described almost any web-based UI ;) > And then when you're using the app all of the interactions are slow because NodeJS's concurrency is so poor. Most of the slow interactions come from the web-based UI. I mean, Slack needs 17% CPU to draw an animated emoji. And it's already running in a hyper optimised Chrome: https://twitter.com/dmitriid/status/1486364312910368769 https://twitter.com/dmitriid/status/1486364312910368769 > Happy to be enlightened with alternatives. Qt :)
- shubhamkrm 3y ago> Qt Unfortunately, it’s licensing is not suitable for everyone.
- KronisLV 3y ago> It's not perfect but for a cross-platform app development library I've not seen anything better. Happy to be enlightened with alternatives. Unironically, FreePascal/Lazarus had a decent shot at this with LCL: https://en.m.wikipedia.org/wiki/Lazarus_Component_Library https://en.m.wikipedia.org/wiki/Lazarus_Component_Library It could target Win32, GTK and Qt all at compile time (even Android and OS X but that never got developed all that far AFAIK), depending what runs on your target platform, while you get common components and RAD at design time. I haven't seen anything like it since and sadly the language and ecosystem are mostly dead, which is a shame, because the idea was brilliant and it actually worked (and is still used in some software, like CudaText and PeaZip I think). Aside from that, something like MAUI could be worth a look: https://dotnet.microsoft.com/en-us/apps/maui https://dotnet.microsoft.com/en-us/apps/maui
- hobofan 3y ago> so the UI portion will be just as slow as any Electron app Or as fast as any website built with a pinch of care to performance.
- artursapek 3y agoOn the bright side, they could still switch to using a proper pure Rust UI library like iced.
- threeseed 3y agoTheir documentation [1] is completely empty. I do applaud anyone that tackles the challenge of building a proper native cross-platform UI. It is one of the ultimate goals in software so wish them all the best. [1] https://book.iced.rs https://book.iced.rs
- artursapek 3y agoThe iced repo has plenty of examples, and the docs.rs is very clean. The book is a newer effort.
- oblio 3y agoI tried to build something much simpler than this. For integration with cloud services you're going to run into OAuth, and guess what, that dance happens in a browser: get access to cloud drive -> get sent to provider login <<web>> page (or authorization page) -> get sent somewhere else. I mean, you can build it without the browser, but a key and very early step involves a browser, you need it anyway. Might as well ship your own if you can do it.
- mrtesthah 3y agohttps://developer.apple.com/documentation/authenticationservices/aswebauthenticationsession https://developer.apple.com/documentation/authenticationserv... You don't need to embed a browser engine for this, let alone build the entire app inside a browser.
- oblio 3y agoAWESOME! Now do the same for: Windows · Linux · iOS · watchOS · Android [1]. I'd rather embed the browser and get a free cross platform UI toolkit that's guaranteed to work everywhere :-) [1] https://github.com/spacedriveapp/spacedrive https://github.com/spacedriveapp/spacedrive
- clnq 3y agoIf that bothers you, picture this — webasm on Electron.