| I had high hopes for flutter but gave up after a while. It feels like their design meetings were spent arguing about grammar and splitting hairs, rather than thinking about ergonomics and how people would use it. In Flutter, everything is a nested pile of objects with too many APIs to keep track of. Take this example: https://github.com/flutter/flutter/blob/master/examples/stoc... Why do I need to care if something takes a `child: (single object)` argument or a `children: [LIST of objects]`? Flutter would be better with JSX: JSX hides how the puzzle pieces fit together. I don't care if it takes a child or children; just make everything connect the same way. React Native's Flexbox also beats how Flutter did things. Why do I need to memorize which objects take which styling arguments? You want to center items on the screen? Re-nest everything inside a Center object! You want a column or a row of elements? Use a Column/Row object! For a framework that's trying to bill itself as a great tool for prototyping, it feels like I'm sifting through a mountain of minutiae. I was able to guess my way through a React Native app and be right 99% of the time. With flutter, my luckiest guess would lead me to an abstract base class... Then I'd have to dig around to figure out what the hell I need to use to make a view scrollable. Seriously: https://github.com/flutter/flutter/blob/c6b0f833af9e431df1e6... Why? |
The IDE tells you what's needed and the latest version of the plugin automatically adds a list literal and places the cursor inside it:
https://groups.google.com/forum/#!topic/flutter-dev/LXafJQqS...
Personally, I think it makes sense to differentiate between exactly one and zero or more.
> Why do I need to memorize which objects take which styling arguments?
The IDE should do that for you.