6 ms·
I'm seeing Flutter is gaining more momentum at least in social media. Last I checked, I concluded the framework inherently depends on layers of abstractions tha
by ducktective 3y ago
I'm seeing Flutter is gaining more momentum at least in social media. Last I checked, I concluded the framework inherently depends on layers of abstractions that make it slower/less-responsive than say QT or native toolkits of the OS.
Since Dart's raison d'etre is pretty much Flutter dev, I was wondering if it is worth learning if one's intention is knowing a handy cross-platform GUI dev toolkit that just works.
That said, the competition in this scene don't have better to offer anyway namely react native (web tech) and QT (LGPL).
- mhitza 3y ago> That said, the competition in this scene don't have better to offer anyway namely react native (web tech) and QT (LGPL). What's the downside in your perspective of Qt being LGPL? I'm more familiar with GPL and AGPL, but with LGPL as long as the user can swap out the linked LGPL libraries you should be good. What is the downside in that? I can only think of it being an issue if the application you build statically links all the libraries it depends upon.
- ducktective 3y agoThe LGPL is just a nuisance that startups always have to be wary about. Personally, yeah, I think Qt is leagues ahead of the alternatives.
- seabass-labrax 3y agoYou can just buy[1] Qt, which is of course why they chose the dual-licensing model in the first place. In my opinion, though, the amount of extremely high-quality free and open source software that is available to include in one's programs is so great, it really is worth spending the time to create a proper FOSS licence compliance plan and form a OSPO (Open Source Programme Office) in your organisation to execute it. If you actively pursue the benefits that can come from directly contributing to existing FOSS projects, the rewards are even greater. [1]: https://www.qt.io/pricing https://www.qt.io/pricing
- pzo 3y agoIt's not sure if you can use LGPL when you release app too iOS App Store - both from technical and legal perspective. Technical because there is no easy way for user to swap dynamically linked libraries. Another issue is most recent QT modules are released using GPL.
- yellow_lead 3y agoQt also depends on layers of abstraction and is slower than native GUI (on mobile) and also integrated badly with mobile IMO. On Android you have basic issues like the scrolling has no inertia, text rendering cannot support emojis well, and Text QML components don't play well with autocorrect and other mobile features. (This is all QML experience btw, widgets are not supported too well on mobile anymore) I'm going to take a look at Flutter to see how it handles these issues soon, but I can't make a real comparison now.
- ngrilly 3y agoI didn't know the state of Qt on mobile was so abysmal. Good to know.
- pjmlp 3y agoAll frameworks beside the native ones on mobile are abysmal, people delude themselves thinking that they don't need to master the underlying stack as well. On the Android side it is even more difficult, because the NDK as matter of principle only exposes APIs for games and implementing native methods, so anything else has to be full of JNI calls into Java, even if those Java classes are mostly composed by native methods.
- ngrilly 3y agoAre you saying that all the non-native mobile frameworks are abysmal because they have to map to JNI calls on Android and Objective-C/Swift on iOS?
- pjmlp 3y agoThey are abysmal, because they are leaky, yes. The dream of one code base to rule them all, can easily turn into a nightmare when going outside the golden path. And really, a large majority of apps are doing basic CRUD stuff, easily doable as mobile Web.
- 3y ago
- zogrodea 3y agoNot a fan of XAML after trying to get into it, but there is Uno Platform. It wraps native widgets on mobile, just like React Native (which is good for accessibility), and uses C#. https://platform.uno/ https://platform.uno/ My guess is that it's mainly focused on mobile. On Windows, it has no overhead (behaving like a normal WinUI 3 app), on macOS I think it uses Catalyst by default (which was developed by Apple to make more iOS apps available for Mac desktops) and on Linux it draws its own widgets that the devs try imitating the GTK style with. On Android and iOS, it just uses the native widgets which I think is a better experience so you can see my reasons for guessing it's mobile-first. That may or may not be what you want.
- la_fayette 3y agoI would bet on the web. Applications like VS Code or MS Teams are built with web technology and just work fine...
- Cthulhu_ 3y agoThey work "fine", granted, but they're a compromise; their performance is much lower, user experience is unique compared to native applications, etc.
- realusername 3y agoVSCode okay I agree but Teams, the performance is attrocious. VSCode is pretty much the only fast web app and they managed it because they have done a massive amount of work to compensate it, I'm not sure other apps have the resources to go as far as them.
- deleted 3y ago[deleted]
- pzo 3y agoI was pessimistic about flutter 4 years ago but rechecked it recently (learning right now) and IMO it's really good user/developer proposition these days. They resolved most of issues on mobile devices and desktops - only web version still off but once wasmGC is ready (hopefully this year) probably things will improve. Best way for developer elevator pitch just download few flutter apps and see how you like the experience: 1. wonderous - https://flutter.gskinner.com/wonderous/ https://flutter.gskinner.com/wonderous/ 2. flutterflow (low code + gui editor for flutter) - https://flutterflow.io/ https://flutterflow.io/ 3. appflowy (notion alternative) - https://appflowy.io/ https://appflowy.io/ 4. flutter gallery (official flutter kitchen sink) - Android (Google Play Store) - https://play.google.com/store/apps/details?id=io.flutter.demo.gallery https://play.google.com/store/apps/details?id=io.flutter.dem... web (gallery.flutter.dev) - https://gallery.flutter.dev/ https://gallery.flutter.dev/ macOS (.zip) - https://github.com/flutter/gallery/releases/latest https://github.com/flutter/gallery/releases/latest 5. official material 3.0 demo - https://flutter.github.io/samples/web/material_3_demo/#/ https://flutter.github.io/samples/web/material_3_demo/#/
- zgluck 3y agoWonderous: A showcase app for the Flutter SDK. Built by gskinner in partnership with the Flutter team, Wonderous deliberately pushes visual fidelity, effects and transitions to showcase what Flutter is truly capable of on modern mobile hardware. https://github.com/gskinnerTeam/flutter-wonderous-app https://github.com/gskinnerTeam/flutter-wonderous-app
- jillesvangurp 3y agoCompose multiplatform is a newcomer in this space but worth mentioning. Built on Google's Jetpack Compose framework and Kotlin but with experimental build targets for IOS and Wasm. You can play with it now but this is pre-release quality; so expect issues. But once the feature flags for GC and Threads are removed in browsers and Kotlin 2.0 ships (early next year probably), this could change rapidly. I've not done much with compose yet but I'm keeping an eye on the kotlin slack channels related to this. There is a lot of stuff happening there.
- brabel 3y agoI have played with Kotlin Multiplatform. It's all very alpha quality in my opinion, and even more so if you use Jetpack Compose. Lots of basic things are still in "incubator" mode, which means it can and will change, so you need to keep changing stuff on upgrades. The technology is very cool and Kotlin is a great language. However, if you need to do something right now, there's no comparison with Flutter, which has been production ready for years.
- jillesvangurp 3y agoYou're not wrong. I've been developing with kotlin-js and kotlin multiplatform for three years now. Kotlin-js and multi platform is pretty usable but the upgrades can be challenging. Parts of the ecosystem have been pretty stable for years at this point and there are lots of multi platform libraries that are very usable and stable. I use quite a few of those on jvm and js. Even though it is in beta since October, KMM (Kotlin Multiplatform for mobile) is already used by a lot of apps; including some flutter apps. It doesn't provide a UI layer but you use it to share business logic across Android and Ios. Jetbrains has done a lot of work on the native compiler to get IOS more stable. Quite usable at this point but still some instability indeed. I expect they will announce a 1.0 release some time after kotlin 2.0 is released, which includes the revamped compiler. Kotlin 2.0 should happen by early/mid 2024. Compose multiplatform is yet a different thing that relates to this. Some of the compilation targets are still experimental (IOS, WASM) and indeed not ready for production usage. That too is going to benefit a lot from Kotlin 2.0. The whole compiler chain for wasm is basically built on that.
- synergy20 3y agoI actually use wxwidgets after flutter and qt these days flutter is cool for mobile but so so on desktop to me. Qt's license is complex for me as well. so far wxwidgets is a great fit.