Hacker News new | past | comments | ask | show | jobs | submit login

You’re welcome to think that, but it's not a dumb take — it is an aesthetic and technical take (you know, de gustibus non est disputandum).

My attention is valuable (at least to me and those around me), and I choose not to waste that attention on applications that are built with a framework that quite deliberately disrespects the platforms I choose while presenting a badly drawn version of the thinnest layer.

On macOS and iOS, Flutter pretends to conform to platform standards, but it does so very badly (I can always tell if I'm using a Flutter app; it's just off…and my battery life suffers because Flutter is such a bad citizen). Honestly, I probably wouldn't hate Flutter on iOS if it didn't pretend to conform to iOS standards while missing the mark (just like every Google app misses the mark on what an iOS app should look like; it's just wrong).

On the web, Flutter is even worse by pretending that there's only one HTML tag, <canvas>, and throwing away _all_ of the rest of HTML to do everything else that HTML does, but worse and less accessibly. That, ultimately, is unforgivable and a waste of everyone's time.

Regardless of how useful gioazzi's project may be, the technical choices made put it well outside of the boundaries where I am comfortable recommending its use to anyone — and that's fine. I posted a similar take about someone who did a Show HN about a project they made which required a Google login; I was interested in seeing what they had done until I saw that requirement. That technical choice, while a valid one, put it well outside of my "I will try this thing at all" zone.

I shared this stance because I know I’m not alone, and people need to know if their architectural choices put them outside of the market they are targeting. I might or might not be in their market, but it's still a useful thing to know that there's this one asshole in Toronto who won't use it because they took the "easy" way out for pseudo-cross-platform support. (I do not have the same reaction to React Native, but that's because it ultimately doesn't try to emulate the platform.)




Well of course as any technical choice this is a compromise These are all very valid points, that we did consider, but I think the alternatives were just not as good.

I feel less strongly about apps not looking like system apps; in fact, I kind of dislike apps that try too hard to look like the settings page: I like when they bring some variety, some personality, something that makes them stand out. Though I agree that broken interactions are unbearable, e.g. apps that break the "swipe back" gesture.

It could have been a web app as well (in fact, the initial version was), but some offline functionality was needed, and service workers messing up caching and iOS not being a great player with PWA, it just ended up being more painful than it should have been.

Or we could have built 3 apps, which I would have loved (but we are a team of 3, and working on a bunch of other things at the same time). Flutter does have a fairly good developer experience (its hot reload cycle is unmatched in my opinion), but of course native development, with all the support libraries you get from the platform, is on a different level. (What even is native though? Is UIKit "more native" than SwiftUI? Is Safari native? And how about the web apps you open in Safari? It's JS code, but at some point it's compiled to ARM instructions, now running from the very same memory pages as Safari, does that make the web app native?)

Having said that, it's not like I need to convince you to try out our app, it's good that we have options and probably Apple Invites is what works best for you!

But out of curiosity, when is the last time you did try out a Flutter app? Because they have been improving a lot, in fact for quite some time they ran better on iOS than on Android thanks to the new Impeller rendering engine (now default on Android as well)[1]

They did some work for accessibility on Web, too.[2]

BTW it's funny you mention React Native, I last built something with it a long time ago... and it wasn't that good - but I just realised I do use some React Native apps right now, so I guess they also improved a lot; I should give it a shot again!

[1]: https://docs.flutter.dev/perf/impeller [2]: https://docs.flutter.dev/ui/accessibility-and-internationali...


It's been a while since I knowingly tried a Flutter app. Most of the ones that I have used even temporarily are Google garbage, and they are so bad that I will not give any Flutter app another try. I also fundamentally think that the technical approach of Flutter is wrong and should be resisted. You now not only have the "build platform lagging system platform" problem (something that happens to all non-native development options), but you have to trust that the Flutter people understand the target systems well enough to make the "draw" work (I think they fail every single time, just like Swing with its "windows" or "mac" personalities did).

But platform appearance is the thinnest layer (and Flutter can't even get that right because of its model). Design is about how something works (and a little about how it looks). Flutter apps don't look like iOS/macOS apps, but more than that, they don't feel like iOS/macOS apps. Flutter apps on the web will never feel like a proper web citizen, because they aren't — they're either a single canvas or a lot of canvases that have to have accessibility hacks instead of building on the platform.

If Flutter as a system decided to take the Swing approach of having its own "native" look and feel (https://www.geeksforgeeks.org/java-swing-look-feel/), I would not expect Flutter apps to conform to the high standard that I’ve expressed here. But the moment that they said "we can do better than Apple with the Cupertino personality", they failed — and IMO so does everyone who uses that.

(We had someone at work try to push Flutter as a cross-platform, including web, engine a couple of years ago. It was a complete disaster because he didn't know Flutter, didn't know Dart, and wasn't actually very good at architecting anything in the end, either. His React apps were nearly as bad. It took someone less than three weeks to rewrite the demo app from Flutter — which took 2 people ~6 months to build — to React Native and it did more, more smoothly.)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: