Hacker News new | ask | show | jobs
by stu_k 2606 days ago
Flutter looked great, until I realised that they were re-implementing all the OS controls themselves. For example: https://github.com/flutter/flutter/blob/1db5d66932b873e17c8c...

This is the kind of thing that leads to an "uncanny valley" app, where things feel slightly off, or they look good until the OS changes something and Flutter doesn't keep up.

3 comments

I'd definitely a concern and non-ideal for things that are not spec'ed out in https://developer.apple.com/design/resources/. Hopefully this is all temporary until we can build our own comparison tooling https://github.com/flutter/flutter/projects/9#column-3989168.

Disclaimer: I wrote that line :(

That's why ReactNative is my preference. There are forks of it that target Windows and MacOS using their native controls. Microsoft maintains the Windows ReactNative fork (https://github.com/Microsoft/react-native-windows) and they wrap React, ReactNative, and the desktop forks in their ReactXP project.

I don't trust Google to emulate a perfect UI among all platforms. I feel like they're generating too big of a workload for no reason, it's a big red flag. I think eventually they'll give up on emulating native controls and choose a unified appearance for all platforms (forcing Material design for everyone) as well as giving the option to customize. I think their endgame is to push Flutter as much as possible so they have Fuchsia developers, then let the other target platforms go unmaintained. Their language, their OS, their devices.

In other hand, when I build something using Flutter I know end use will look at this exact pixel on whatever (android) phone used.
How much does this actually matter, though?
matters a lot more than getting inconsistent rendering and behavior that you have to continually test cross platform when trying to wrap native controls behind a leaky abstraction.
Generally, it matters more than you’d think. People can get subconsciously used to things (often in ways they cannot vocalize) and may feel that your software is “off”.