Hacker News new | ask | show | jobs
by danbalthasar 2833 days ago
Flutter takes full control of the rendering pipeline directly on both platforms - all the controls your seeing are written in Dart for Flutter, but designed to mimic the best of what the platform offers.

In particular, this means that if you're running an Android app on an older device, it can still show the latest Material design widgets (and similarly for iOS, showing the latest Cupertino styled widgets, or Material).

1 comments

> Flutter takes full control of the rendering pipeline directly on both platforms - all the controls your seeing are written in Dart for Flutter, but designed to mimic the best of what the platform offers.

You see, this is rarely what I want. I’ve seen time and time again people trying to emulate controls and it just doesn’t work. Apple has a whole team that’s spent years making the iOS UI look just the way it is, and I don’t trust any other team to be able to copy this without serious effort. Sure, it might look pretty similar, but something always doesn’t work: the control behaves differently, isn’t accessible, animates incorrectly, etc.

(Flutter TL here)

I encourage you to compare our iOS ("cupertino") widgets with the UiKit ones. We've still got many to implement, but I think we have the fidelity pretty high for the ones we've implemented. If you disagree please do file bugs, we care very much about fidelity.

Do you have a widget catalog somewhere that I could try out on my device?
If you have an android device you can use Flutter Gallery [1], it has the Cupertino (iOS) widgets.

[1] https://play.google.com/store/apps/details?id=io.flutter.dem...

Does this actually emulate OS-specific interactions such as gestures?
I hear you. I was suspicious of this too, but there's been a lot of work put into making the controls we design work well and properly implement accessibility/native platform behaviors. And when something is off, someone ends up raising an issue and it gets fixed.

It also makes it very easy for developers to create their own custom widgets/layouts that are pretty challenging to achieve in other platforms.

I hope you'll give it a try some time - if nothing else, you might be able to raise some issues to help us improve some of those details!