6 ms·
Seems like most React apps never think of supporting large amounts of data. Not blaming them - the framework should support it out of the box. You shouldn’t ha
by Void_ 3y ago
Seems like most React apps never think of supporting large amounts of data.
Not blaming them - the framework should support it out of the box. You shouldn’t have to understand virtualized lists.
I made a TableView in SwiftUI and I can scroll through thousands of without having the slightest idea how it works under the hood.
- throwaway50702 3y agoYou can use one of the React-Virtualized components without the slightest idea how it works. TableView from SwiftUI is the same thing - a component that implements virtualization on top of the base GUI library for you. React is not a UI framework, it's a low level reactive library with very limited scope - even the DOM bindings are shipped separately, and it can be used for much more than just GUI, for example VR experiences or cloud infrastructure deployment. Bring your own batteries.
- jwells89 3y agoThe issue with the “bring your own widgets” approach in my experience is that it’s unusual for third party widget packages to have anywhere near the sort of depth and breadth of capabilities compared to the same widgets that come OOTB with native UI toolkits. This means “shopping” for the widget with the best tradeoffs for one’s particular use case and making up for whatever inadequacies it comes with yourself (or just living with the inadequacies, resulting in a crappier app), which is annoying at best. It’s so much nicer to just be able to trust that an extensive library of stock widgets will be able to do whatever it is that you need, as tends to be the case with AppKit/UIKit.
- throwaway50702 3y agoThat'd be something provided by the Web platform (through the DOM bindings), not React. React provides a way to work with the DOM elements/native components/etc in a reactive way. The real problem is that the Web platform doesn't offer a good set of customizable UI elements other than the most barebone basics.
- threeseed 3y agoWhen you're building a cross-platform app OSX isn't the weakest link. It's older versions of Windows and Linux. And UI libraries like Tailwind, Shoelace etc are surprisingly extensive and constantly being improved. And if something isn't to your liking it's often to trivial to change it.
- trollied 3y agoSomething 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.
- SoKamil 3y agoI presume that by TableView you mean List { } component. Sadly, there is no component for large horizontal lists in SwiftUI and no, ScrollView with LazyHStack is not an answer due to memory issues.