In terms of numbers I don't know but I personally chose it from my apps and to me it's the best framework out there at the moment.
Compared to the native tech the advantages are easy, you have a single codebase and UI for all the platforms. The native UI apis are also moving faster than Flutter in my opinion which makes Flutter lower maintenance as well on this area.
Compared to React Native, it's younger but more stable in my opinion, I don't want to deal with the js package churn rate and its bad testing story. I come back 6 months after to my flutter projects and after 2 hours I've upgraded everything, good luck with that on the js side.
If you care about Linux, Flutter is also a better choice than React Native in this scenario. React Native Gtk target is abandoned and the only realistic solution is to use an Electron wrapper (well it's not that native anymore isn't it)
The only downside to me is the web target which isn't that great, if you just want to use the web target as an app demo though, it's good enough.
I was also very surprised at that line and I was wondering if I was the one who was out of touch or the Google team were. I haven't really looked into mobile development for a few years so it could very well be the case, but it stood out to me as unlikely considering the relative impopularity of Dart and the (to my estimation) very low hype profile of Flutter where developers hang out.
But maybe they're right. I think it would be exceedingly hard to actually get real numbers on it anyway.
I guess it depends on how you measure popularity. If we’re counting new apps published on App/Play Store? Perhaps, even if still quite surprising . By user numbers? Completely unbelievable.
> Tim was a director on Flutter until a few months ago and now works at Apple.
>
> That is, he has first hand knowledge of Flutter's numbers and now that he works for a competitor, no motivation to inflate Flutter's stats.
Being the ex director of a project means you will always have a reason to inflate the stats of that project, even if it is just for personal pride. I don't see how Hickson leaving Google means he doesn't still have part of his work life tied to the project regardless of employer.
> Without getting into specifics (which I cannot share), Flutter is wildly successful in the market place and continues to grow YoY.
That's cool, but this is just more of the same and more of what people seem surprised by. Numbers don't really matter unless they're visible and verifiable.
If it is a response to that, you would have to assume that Hickson left because he pushed for or against something relating to working on Flutter. If Google wanted to place him elsewhere, for example, and he left Google because he figured he can bankroll his own work on Flutter and look elsewhere, that'd be in line with this line:
> I hope that Google finally realizes what treasured assets they have here before it's too late. The clock is ticking.
Lowering the amount they're investing in Flutter would definitely be something that would disappoint the ones who believe in it strongly in-house and taking away key people would not inspire confidence. Interestingly none of the tweets ever mention Hickson as being important, which doesn't exactly speak to the source of the complaints being Hickson leaving, but rather a much more general lowering of investment in Flutter.
Hickson left Google for his own personal reasons. Not because Flutter is losing resources or that he was asked/assigned to work on something else.
Google has not lowered the amount resources dedicated to Flutter.
Ian started the Flutter project and it's hard to point to someone more important to Flutter's success than him.
He continues to work on Flutter as does the entire Flutter and Dart teams.
How do I know this? I've been working on Flutter (off and on, currently on) for seven years and was present when Ian announced his departure from Google (not Flutter).
Fair enough. What is the impetus for this long, whinging thread that has been linked to, then? If it's not about Google at the very least not showing any confidence in Flutter it seems fairly hyperbolic.
Creating a genuine Flutter development pod outside Google makes it way more likely that Flutter won't die when the internal Google project gets shitcanned.
You and me both. I've spent the past few years rewriting a UWP app into Flutter, and really enjoy the experience. I desperately, desperately don't want to have to go back to web development. I hate the DOM so much.
I am still salty that "Flutter" used to be the name of an software that let you control your media players using gestures captured via your webcam. Then Google acquired it[0], gutted the project and only kept the name. I guess it will be meeting the same end.
- Performance: Even on Desktop, animations have jank. Last I compiled samples on Mac, the problem was visibly there.
- UX: Text editing immediately feels alien. If Mac for example, you have a text field in a native app and on the side you have a flutter app with a text field, you can tell the difference between the "feel" when you type in each. This isn't necessarily limited to text fields alone.
- Web: surely is possible but you have to dumb down your application so much. You cannot use libraries from JS ecosystem so lot is left on the table. Imagine High Charts, d3.js and such. Say goodbye to them when you're on Flutter Web.
Lastly, from the tone of it, seems like Flutter is on the way to join Google Reader and such. Gradually.
Flutter is mainly a mobile framework. Electron owns the desktop, anyone using flutter on the web is crazy. While you're points are valid, they are kind of irrelevant.
Wow, the first thing I’m met with is a terribly choppy scroll rubber banding animation on a view which shouldn’t even be scrollable. Not only isn’t it 120 FPS; it doesn’t even feel close to 60.
So then, if you want to have a really cross-platform app, ditching Flutter and using web tech for mobile too sounds like the better bet? Or, otherwise said: if Flutter is only relevant for apps, that's a pretty small niche.
I meant it's a small niche for Flutter to address only the apps that want to be cross-platform, don't want to invest into having "native" iOS and Android versions, but are Ok with using a different technology for desktop/web (or don't need those).
And plenty of well known companies have discovered that mastering two native stacks is still easier and cheaper in the long run, than mastering a "cross-platform stack" framework + dealing with leaky abstractions + build integration issues + having to master the native stack anyway.
You know, this is a solved problem. Qt, for example, can easily do it (and has been able to do it for 10+ years, from microcontrollers to phones). And, just saying, QT is damn fast, a necessity if you want to work on microcontrollers of course. And yes, you can do it without royalties, without paying for QT, and in multiple languages (at least C++ and Python work pretty well).
(oh, and QT supports 3d, on the web, on android, on ios, and on desktop, even on microcontrollers if needed)
And yes, Javascript's advantage has been that it was cross-platform pretty early on. Not particularly fast though, not even decades later.
And everybody keeps pointing out the same shortcoming: these frameworks let you share a lot of code, but mostly not the actual "View" (the V in model/view/controller) code, due to screen sizes, whether the UI can be resized, extra functionality (e.g. statusbar/notifications/...)
That's why new frameworks come out, because "why can't notifications on Windows work the same as on android?". "Why not just share UI?". Unfortunately, there's very good reasons they cannot work the same ... So a couple years in, these frameworks develop the exact same problems.
There is a use case for Flutter Web and that is an extremely simple user interface such a form or a simple workflow, which can share code with e.g. a mobile app.
Other than that I agree - Flutter web is not going to be a good choice and that was never really the goal for them, I believe.
I do not see these as three major problems, simply because your arguments refer to use cases that very, very few Flutter developers actually care about. Flutter is a native mobile app framework.
I hope they solve the problems above, but it's not really anything that keeps Flutter developers awake at night.
Fourth, it was never wanted from the Android team, with key figures like Jake Wharton having issues with it,
"Flutter is a manifestation of everything wrong with Google as a company. A language that should have (and did) fail but kept alive. Control of the two most popular platforms on the planet and failing to unify them while allowing a third to be created that actively undermines both"
You also see this from Flutter's point of view on Tim's tweets
"That all happened, and set a bar that others had to invest heavily to compete with. Jetpack Compose was essentially a Kotlin clone of Flutter, literally to the point of translating large chunks of code."
To this day, Flutter is yet to be part of the official SDK tooling.
Proven is a bit strong word. Shortcuts can work, accessibility can work etc. Integration with OS stuff depends on the API OS exposes. Only mimicking & integration lags behind and only after the updates that actually change platforms UX. There is nothing magic about the "feel" that can't be implemented. It is a lot more work to develop a quality framework like this though. On the plus side it can work on the platforms without desktop environment.
- Performance: I agree it's not there yet. But it's still improving. There is currently major Skia to Impeller migration in progress. It look like Flutter should be able to reach good performance once it matures. The only long term limiting factor regarding performance is declarative architecture of Futter, which adds a bit of overhead.
- UX: Again I agree. It's not there yet. But due to Flutter being based on low level APIs, there is nothing preventing it to mimic any platform's "feel". This is also still being improved. While Flutter will UX probably never 100% match any OS's native UX, as it implements everything on it's own, it could reach the same UX quality.
- Web: IMO, Flutter weakest platform. Let's see what WasmGC support brings.
I would add fourth problem: Dart. It's not a bad language, but it is years behind with features, performance is currently the same as JS (even though it's statically-typed, AOT compiled language), ecosystem is small and it tries too hard to keep compatibility with JS target (eg. no proper unsigned 64-bit ints).
So, currently there are still some moderate issues with Flutter. But its foundations are good. It all depends on Google to keep investing in Flutter.
It doesn’t matter if Flutter reaches the same UX “quality”. What matters is that it will never feel native. I agree with you that this is a fundamental problem which pretty much can’t be fixed.
Does 100% native feel really matter that much? How often do you encounter situation where you feel your experience is worse because UI/UX isn't same as native, even though the quality of UI/UX is equal to native (not worse in any way, just different)?
Sure, consistency and familiarity matter, but IMO it's not like every deviation destroys the experience. If that were the case, UI/UX of iOS should have stayed the same since v1.0.
> - Performance: Even on Desktop, animations have jank. Last I compiled samples on Mac, the problem was visibly there.
This problem is mentioned whenever Flutter is discussed.It's been several years already. Seriously, they have a ton of smart people there, how it's not their number one epic? Unless, well, it's an architectural problem and nothing can be done - but then why continue the project at all?
We don't support the MacOS/Windows/Linux variants, but our Flutter app's web performance is amazing. I'm honestly not sure why people seem to think the performance isn't good.
I wrote Dart full time for a couple years at Google (working on Assistant). I really enjoyed it! It's a really nice language, and pretty easy to pick up.
You should give Dart a try, it's a lovely language. and very easy to pick up. In fact, it's become my favorite of the modern languages. For perspective, I come from a primarily Java/C# background, with large smatterings of Python, JS/TS, and Go, not to mention other less popular languages.
I would describe it as C#-lite. It's got all the features of a modern C-derived language with very little of the accumulated complexity. It's got pattern matching, tuple-syntax, a very strong constructor syntax, first class functions (this has become table stakes in the past decade but not so long ago it wasn't)... It's just a well balanced and very pleasant language.
I'm hardly the Dart Defense Force, so I'm not about to justify all their choices, and I share a lot of your annoyances, especially re: threads, data classes, and tagged unions, but what does people using List<int> have to do with Dart itself? I don't hate on Java-the-language because the libraries are full of BeanFactoryFactory().
You can't do List<byte>, but need to use special types like Uint8List. This was not always available, so List<int> is sometimes still used even in official Google libraries. If it had value types you wouldn't need these special lists.
I agree that overall it feels like C#-lite, plus some baggage from early days when it was designed as an alternative to JS.
It will probably become really nice language in a few years.
Once you get into it, it becomes clear that Dart is actually pretty brilliant. There are lots of small little features in Dart that makes working with Flutter very productive (and even fun, I would argue).
Probably related, The Future is Flutter where former HTML editor Ian Hixie says they are no longer at Google but declares their dedication to Towards a Modern Web Stack aka Flutter-web the low-level replacements of html with rendering one's app into Canvas. https://ln.hixie.ch/?start=1700627532https://news.ycombinator.com/item?id=38383306
I've written numerous times about what a terrible horrible thing for the web & for users this is, so I'll spare a repeat.
Even though I remain a skeptic of low-level app platforms like Flutter, I do respect a lot Tim's penultimate parting post, about this being work being a vocation, a calling for many of these folks. Being treated as industrial force, to be deployed at the leisure of the company, is disgusting & widespread, and I appreciate Tims words here.
> Any negativity you read is coming from folk who wanted to see senior leaders be better stewards of this amazing inheritance. It's not about the paycheck. These are people who believe in this work as a vocation. They're not fungible resources to be redeployed at whim.
I also would volunteer that Fuchsia seems really cool, like a really smart capable secure OS, and that I hope it can strongly persist.
I chose dart/flutter over everything else because it was easier to learn and was truly cross platform. I hope it isn't abandoned by Google.
That being said HN really doesn't like flutter and even more so dart. This thread is the busiest I've see about dart/flutter and most of it negative, almost like people want Google to ditch the tech.
I like dart/flutter for what it's designed to be, a write once deploy everywhere framework. Nothing else comes close if that's your goal.
96 comments
[ 3.2 ms ] story [ 172 ms ] threadhttps://ln.hixie.ch/?start=1700627532&count=1
> Flutter is amazingly successful. It's already the leading mobile app development framework
Is this true? Over iOS native, Android native, React Native, or any other hybrid frameworks?
EDIT: numbers can tell different stories, but here's one at least against React Native (which I'm most interested in) in Flutter's favor: https://stackoverflow.blog/2022/02/21/why-flutter-is-the-mos...
I would say in jest that it might be inversely correlated with success, but you also wouldn't want to work with, say, brainfuck.
Compared to the native tech the advantages are easy, you have a single codebase and UI for all the platforms. The native UI apis are also moving faster than Flutter in my opinion which makes Flutter lower maintenance as well on this area.
Compared to React Native, it's younger but more stable in my opinion, I don't want to deal with the js package churn rate and its bad testing story. I come back 6 months after to my flutter projects and after 2 hours I've upgraded everything, good luck with that on the js side.
If you care about Linux, Flutter is also a better choice than React Native in this scenario. React Native Gtk target is abandoned and the only realistic solution is to use an Electron wrapper (well it's not that native anymore isn't it)
The only downside to me is the web target which isn't that great, if you just want to use the web target as an app demo though, it's good enough.
I need to dedicate some time to try it.
But maybe they're right. I think it would be exceedingly hard to actually get real numbers on it anyway.
That is, he has first hand knowledge of Flutter's numbers and now that he works for a competitor, no motivation to inflate Flutter's stats.
Without getting into specifics (which I cannot share), Flutter is wildly successful in the market place and continues to grow YoY.
Being the ex director of a project means you will always have a reason to inflate the stats of that project, even if it is just for personal pride. I don't see how Hickson leaving Google means he doesn't still have part of his work life tied to the project regardless of employer.
> Without getting into specifics (which I cannot share), Flutter is wildly successful in the market place and continues to grow YoY.
That's cool, but this is just more of the same and more of what people seem surprised by. Numbers don't really matter unless they're visible and verifiable.
It's completely reasonable to continue to be skeptical of these claims without public numbers.
FWIW, I was surprised by the numbers myself but it's above my pay grade to share them publicly or discuss specifics.
I noticed a huge explosion of interest coming from third world countries prior to pandemic where money is tight.
China BigCos are adopting it.
If you go to hi-tech forums in India, lots of participation around flutter too.
That's two most populous nations in the world by large margin so you can keep looking for stats while they're chugging along :)
> I hope that Google finally realizes what treasured assets they have here before it's too late. The clock is ticking.
Lowering the amount they're investing in Flutter would definitely be something that would disappoint the ones who believe in it strongly in-house and taking away key people would not inspire confidence. Interestingly none of the tweets ever mention Hickson as being important, which doesn't exactly speak to the source of the complaints being Hickson leaving, but rather a much more general lowering of investment in Flutter.
Hickson left Google for his own personal reasons. Not because Flutter is losing resources or that he was asked/assigned to work on something else.
Google has not lowered the amount resources dedicated to Flutter.
Ian started the Flutter project and it's hard to point to someone more important to Flutter's success than him.
He continues to work on Flutter as does the entire Flutter and Dart teams.
How do I know this? I've been working on Flutter (off and on, currently on) for seven years and was present when Ian announced his departure from Google (not Flutter).
What about the recent layoffs from the Flutter & Dart teams?
If true I can see the blowback being pretty severe on this one.
Creating a genuine Flutter development pod outside Google makes it way more likely that Flutter won't die when the internal Google project gets shitcanned.
If Google sunsets it, I'll be so pissed off. I'll never trust anything else coming from them again.
If Google abandons Flutter, companies will spend millions switching to, say, React Native
0.http://web.archive.org/web/20180106061632/https://www.flutte...
- Performance: Even on Desktop, animations have jank. Last I compiled samples on Mac, the problem was visibly there.
- UX: Text editing immediately feels alien. If Mac for example, you have a text field in a native app and on the side you have a flutter app with a text field, you can tell the difference between the "feel" when you type in each. This isn't necessarily limited to text fields alone.
- Web: surely is possible but you have to dumb down your application so much. You cannot use libraries from JS ecosystem so lot is left on the table. Imagine High Charts, d3.js and such. Say goodbye to them when you're on Flutter Web.
Lastly, from the tone of it, seems like Flutter is on the way to join Google Reader and such. Gradually.
The Google's own Family Link app even on web[0] is also a Flutter app.
[0]. https://familylink.google.com
What sucks is that the non-selectable text is apparently the default.
Flutter would be far from being the first framework to do this.
It's not ready as a full platform though like mobile & desktop, that's for sure.
No it is not. Mobile apps are thriving. It is desktop apps that are niche now.
> ditching Flutter and using web tech for mobile too sounds like the better bet?
Quite possibly yes.
Either go mobile Web, or native.
They use Jetpack on Android
https://github.com/vector-im/element-x-android
And SwiftUI on iOS
https://github.com/vector-im/element-x-ios
But both use the same underlying Matrix Rust SDK
https://github.com/matrix-org/matrix-rust-sdk
So they share the core part of the app between platforms, but everything user facing is native
(oh, and QT supports 3d, on the web, on android, on ios, and on desktop, even on microcontrollers if needed)
And yes, Javascript's advantage has been that it was cross-platform pretty early on. Not particularly fast though, not even decades later.
And everybody keeps pointing out the same shortcoming: these frameworks let you share a lot of code, but mostly not the actual "View" (the V in model/view/controller) code, due to screen sizes, whether the UI can be resized, extra functionality (e.g. statusbar/notifications/...)
That's why new frameworks come out, because "why can't notifications on Windows work the same as on android?". "Why not just share UI?". Unfortunately, there's very good reasons they cannot work the same ... So a couple years in, these frameworks develop the exact same problems.
Xamarin/mono already tried almost the same approach years ago and it clearly failed..
Other than that I agree - Flutter web is not going to be a good choice and that was never really the goal for them, I believe.
Postback never died.
I hope they solve the problems above, but it's not really anything that keeps Flutter developers awake at night.
"Flutter is a manifestation of everything wrong with Google as a company. A language that should have (and did) fail but kept alive. Control of the two most popular platforms on the planet and failing to unify them while allowing a third to be created that actively undermines both"
https://twitter.com/JakeWharton/status/1421139368467632136
You also see this from Flutter's point of view on Tim's tweets
"That all happened, and set a bar that others had to invest heavily to compete with. Jetpack Compose was essentially a Kotlin clone of Flutter, literally to the point of translating large chunks of code."
To this day, Flutter is yet to be part of the official SDK tooling.
Wrapping native controls often means being limited by a lowest common denominator in cross-platform scenarios.
JetBrains is the one that decided to take it beyond Android.
Do you think Jetpack Compose could be made multiplatform in Flutter's way (ie drawing its own controls on all platforms)?
Shortcuts don't work, accessibility doesn't work, integration with OS workflows might not work, lags behind any OS updates, there is Look but no Feel.
- UX: Again I agree. It's not there yet. But due to Flutter being based on low level APIs, there is nothing preventing it to mimic any platform's "feel". This is also still being improved. While Flutter will UX probably never 100% match any OS's native UX, as it implements everything on it's own, it could reach the same UX quality.
- Web: IMO, Flutter weakest platform. Let's see what WasmGC support brings.
I would add fourth problem: Dart. It's not a bad language, but it is years behind with features, performance is currently the same as JS (even though it's statically-typed, AOT compiled language), ecosystem is small and it tries too hard to keep compatibility with JS target (eg. no proper unsigned 64-bit ints).
So, currently there are still some moderate issues with Flutter. But its foundations are good. It all depends on Google to keep investing in Flutter.
Sure, consistency and familiarity matter, but IMO it's not like every deviation destroys the experience. If that were the case, UI/UX of iOS should have stayed the same since v1.0.
This problem is mentioned whenever Flutter is discussed.It's been several years already. Seriously, they have a ton of smart people there, how it's not their number one epic? Unless, well, it's an architectural problem and nothing can be done - but then why continue the project at all?
Thee main barrier for me has been the Dart language, I wish it was written in a more popular language like Go.
I would describe it as C#-lite. It's got all the features of a modern C-derived language with very little of the accumulated complexity. It's got pattern matching, tuple-syntax, a very strong constructor syntax, first class functions (this has become table stakes in the past decade but not so long ago it wasn't)... It's just a well balanced and very pleasant language.
- no value types
- missing fundamental integer types (eg. 64 bit unsigned integer)
- no data classes (records are anonymous)
- no tagged unions
- no static metaprogramming (macros coming soon)
- limited constructors (initializer list expression can't use earlier values in the list, no object initializers)
List<int> is still too often used in APIs instead of Uint8List, even though it has 8x overhead.
Slower than C#, Java, Kotlin & Go. Performance is same as JS (even though it's statically-typed, AOT compiled language).
Still, I stand by my claim that it's C#-lite.
I agree that overall it feels like C#-lite, plus some baggage from early days when it was designed as an alternative to JS.
It will probably become really nice language in a few years.
Is there a source?
I'm surprised to see no mention of that aspect. Did i miss something ?
I've written numerous times about what a terrible horrible thing for the web & for users this is, so I'll spare a repeat.
Even though I remain a skeptic of low-level app platforms like Flutter, I do respect a lot Tim's penultimate parting post, about this being work being a vocation, a calling for many of these folks. Being treated as industrial force, to be deployed at the leisure of the company, is disgusting & widespread, and I appreciate Tims words here.
> Any negativity you read is coming from folk who wanted to see senior leaders be better stewards of this amazing inheritance. It's not about the paycheck. These are people who believe in this work as a vocation. They're not fungible resources to be redeployed at whim.
I also would volunteer that Fuchsia seems really cool, like a really smart capable secure OS, and that I hope it can strongly persist.
That being said HN really doesn't like flutter and even more so dart. This thread is the busiest I've see about dart/flutter and most of it negative, almost like people want Google to ditch the tech.
I like dart/flutter for what it's designed to be, a write once deploy everywhere framework. Nothing else comes close if that's your goal.