| 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... |
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.)