3 ms·
Flutter is probably meant to be the native toolkit of a platform. I don’t think there is anything wrong with code-once toolkits that don’t use native widgets if
by jchw 5y ago
Flutter is probably meant to be the native toolkit of a platform. I don’t think there is anything wrong with code-once toolkits that don’t use native widgets if they spend the effort to be accessible and have good UX.
I’m personally falling into the belief that we’ve fooled ourselves regarding UI. That one single UI library could actually be the ideal choice for every possible app, and that we just need to keep trying until the absolute perfect set of tradeoffs appears. I think this is enticing because UI is very hard and full of problems you would have to solve over and over if you had multiple UI frameworks, whereas these things could be amortized if there were less.
I don’t think so. I do think the UI ecosystem, as it slows down, could become more modular and share more core components. I expect to see “base” rendering libraries, like Skia or Pathfinder, powering next generation UIs, and hopefully someone will also make a cross-platform library to provide accessibility and IME primitives for Windows TSF/macOS/etc. I think smaller bits like that can clearly be minmax’d to ideal conditions for given use cases. But if you were hoping for a future of “just use the native toolkit!” I think it’s not likely, at least not until software slows down a lot more. Even then, lowest common denominator libraries like wxWidgets often end up being disliked by users and developers alike, due to the compromises needed for them to accomplish their goals. I’ll admit the story has gotten better with React Native and its success on mobile, but even that is not a perfect story: performance on Android was apparently not good enough for Discord, which may in fact be a pretty good signal for why something like Flutter is a good idea anyways: it can mature over time on existing platforms and then possibly even become the first class toolkit for something.
I do agree that most developers should prefer native over vanity, but it’s a false dichotomy, as there are plenty of valid reasons to not do native. No more is this clear than Windows, where virtually nobody does “native” anymore. (It can still be OK, but it’s not great. Having true HWNDs for every component is a great way to have things flicker whenever you delete/create new widgets.)
- harikb 5y agoIf only the users/customers weren't so fickle. > I do think the UI ecosystem, as it slows down, could become more modular and share more core components I think things like Flutter will take another few years to become performant compared to even Electron/Tauri/Webview+JS Yes, it is sad that we redesign UI (even web UIs) every so often, but it is an unforgiving world. I am not sure if it is the fickle users or the product manager(s) to blame, but we seek fancier and fancier UI with every update. There are exceptions like the craigslist website, but those are rare. I agree with all other points.
- dntrkv 5y ago> I am not sure if it is the fickle users or the product manager(s) to blame, but we seek fancier and fancier UI with every update. It's not fanciness, it's maturation. Compare YouTube from 2006: https://web.archive.org/web/20060202021427/http://youtube.com/ https://web.archive.org/web/20060202021427/http://youtube.co... to now: https://web.archive.org/web/20210430000812if_/https://www.youtube.com/ https://web.archive.org/web/20210430000812if_/https://www.yo... The new design puts content first. There are no superfluous borders, backgrounds, or gradients. Every visual element exists for a good reason. This is good, functional, accessible, design. And YouTube of 2006 is a conservative example, we (well, most of us) can remember the UX/UI atrocities that existed back then.
- mwcampbell 5y ago> hopefully someone will also make a cross-platform library to provide accessibility and IME primitives for Windows TSF/macOS/etc. I'm planning to do this for accessibility. I don't think I have the expertise to cover IME though. Do you think they both need to be done in one library, or can they be decoupled?
- jchw 5y agoI believe IME can be completely separate, though I'm not 100% certain. It might depend a bit on the platform.
- mwcampbell 5y agoCertainly on Windows, IME and accessibility are separate; IME is done through TSF as you mentioned, whereas accessibility is done through UI Automation.