4 ms·
Interesting. I think we really need a good cross-platform GUI development story. I wonder if Flutter will turn out to be it. Does anyone know how Flutter fares
by christophilus 8y ago
Interesting. I think we really need a good cross-platform GUI development story. I wonder if Flutter will turn out to be it.
Does anyone know how Flutter fares when it comes to accessibility?
- kodablah 8y agoAren't there plenty of non-native-gui desktop options already? I think what we really need are cross platform gui options using native widgets (and we shouldn't pretend the impedance mismatch is too large because we've seen successful yet either license encumbered or language-unfriendly options before).
- weberc2 8y agoPretty sure this has been attempted many times, and it never seems to work out well. One problem on Linux is that the native toolkits (Qt and GTK) are just garbage. Of course, creating a new toolkit is a huge, thankless endeavor and it requires quite a lot of experience with low level graphics programming, text rendering, accessibility, etc. I think the web GUI stack is the only viable solution, but it can't be electron because of the redundant bulk--it will have to be something like ChromeOS: every program's GUI runs in its own "tab" (except tabs are laid out like windows); however, instead of pulling HTML/CSS/JS from remote servers, the servers would run as local daemons (it wouldn't really matter where the servers ran, to be honest; network transparency and all that).
- pknopf 8y ago> One problem on Linux is that the native toolkits (Qt and GTK) are just garbage. I don't know how you get that. GTK needs more work, but Qt is spot on.
- weberc2 8y ago> I don't know how you get that. This is my opinion as a former Qt developer who dabbled in GTK in my spare time. Qt is all written in 90's C++ with all of the garbage that entails--awful memory management, CMake as a build system, no widely used package manager, shitty tools, etc. It's actually _worse_ than 90's C++ because it depends on a convoluted soup of preprocessor macros and a metaobject compiler in order to bolt onto C++ things like a dynamic type system and reflection. This means there's only one IDE that really understands it, and it was really buggy when I last used it (~2014). The one nice thing about Qt is QML, which is only nice to the extent that it removes or papers over the aforemetioned list of shitty Qt characteristics. And GTK is strictly worse than Qt. For all its issues, web development is nowhere near this bad--it's cheaper and easier for an organization to ship a bastardized browser alongside their web app than to build a Qt app.
- the_trapper 8y ago> One problem on Linux is that the native toolkits (Qt and GTK) are just garbage. I think a lot of this stems from the fact that Linux (or BSD for that matter) don't really have a "native" toolkit. Also, I think people overestimate the importance of using native widgets. Anecdotally I would say that only about half of the apps I use on a daily basis actually utilize the native toolkit. Microsoft Office, Adobe Reader, IntelliJ IDEA/Android Studio, Visual Studio Code, Chrome, and Firefox are great examples of very successful software that are not built using the native toolkit.
- jenscow 8y agoI think it's a little sad that we're now back to writing our own widget sets. On Linux too, the toolkits of a handful of the applications I use are also, shall we say, "home made". In fact, widgets in Windows have been theme-able since XP. Why couldn't that have been made more available?
- themacguffinman 8y agoI think it's a positive development and a sign that GUI applications are now being treated seriously. There's just no way that any generic widget set is going to 100% fill the needs of an easy-to-use, complicated GUI application. Nowadays when UI/UX actually matters in the success of software, it makes sense that developers are taking control of their UI's widgets. Cobbling together a GUI with a limited set of cookie-cutter widgets that are difficult to modify is no longer acceptable.
- kodablah 8y agoI think Qt does work well. Gtk isn't terrible either. WxWidgets, Iup, etc are also not bad. They just need either better cross language support (i.e. in C or with C iface) or better maintenance. I've had subpar performance with the more recently developed libui, but I have hopes there too.
- repolfx 8y agoYou should check out JavaFX. It has a full set of cross platform widgets, can be styled with CSS, is hardware accelerated with Direct3D on Windows and OpenGL on Linux/Mac. You can do arbitrary 3D transforms of any part of the scene graph, but it also has sophisticated widgets like table views, tree views, CalendarFX, etc. There's a Material Design library for it called JFoenix. There's a visual GUI builder for it. It can play and stream hardware accelerated video. The entire toolkit is designed for reactive programming, there are libraries like ReactFX that go further and add the very latest and most advanced combinators. It's fully open source and developed on github. It's really not that bad but the world seems to ignore it.
- coldtea 8y ago>Aren't there plenty of non-native-gui desktop options already? No, and most of them are crap like Electron.
- DoubleFree 8y ago> Does anyone know how Flutter fares when it comes to accessibility? I believe one of the Dev sprints before 1.0 focused primarily on accessibility and there is a label widget that can wrap any widget to provide a name for screen readers.
- tobiaswk 8y agoI have made a couple of applications with Flutter. Mainly for Android and iOS. I really think Flutter is great. It's my favourite framework currently. It feels like a modern Android SDK and frankly how the Android SDK should feel like. My "biggest" project currently is an alternative to the official NissanConnect EV app for controlling Nissan electric vehicles. You can find it here if you're interested; https://play.google.com/store/apps/details?id=dk.kjeldsen.carwingsflutter https://play.google.com/store/apps/details?id=dk.kjeldsen.ca... It's also open source; https://gitlab.com/tobiaswkjeldsen/carwingsflutter https://gitlab.com/tobiaswkjeldsen/carwingsflutter I think the Flutter team takes accessibility quite seriously; https://flutter.io/docs/development/accessibility-and-localization/accessibility https://flutter.io/docs/development/accessibility-and-locali...
- ilikerashers 8y agoThat looks really impressive. Well done.
- danieldisu 8y agoAre Toast and Dialogs using the native variants? EditTexts feel different, but as a user I don't see much difference.. Great job! and props to you for making it open source
- pknopf 8y agoWhy not Qt?
- the_trapper 8y agoQt's licensing can be a problem for certain platforms such as iOS. It is also quite bulky compared to Flutter. File sizes are mostly irrelevant on the desktop these days, but on mobile it still matters