4 ms·
My first problem with Flutter is that it doesn't unify web and native development, so it fails to solve the big problem immediately. If you can deliver web and
by Tloewald 9y ago
My first problem with Flutter is that it doesn't unify web and native development, so it fails to solve the big problem immediately. If you can deliver web and mobile from the same codebase, you can deal with the "long tail" of users (and web users too). React Native (not that I have any great love of React) and its clones are working towards supporting all platforms.
My second problem with Flutter is the writer's apparent biggest positive feature — Dart. (I love how he naively states that Dart was conceived as a language to transpile to Javascript; it was conceived as a replacement for Javascript with transpilation as a stopgap.) I think Javascript is a fine ("good enough") language that (a) works almost everywhere and (b) is evolving at a more-than-sufficient rate. I have no desire to drink Google's Kool-aid. (Go, OTOH, I am fine with.)
But then I get to "Building Layouts with Flutter":
https://flutter.io/tutorials/layout/#step-1 https://flutter.io/tutorials/layout/#step-1
This makes the articles I've read on "thinking the React way" seem mild in comparison. In exchange for having to restrict your layout ideas to the stuff that will work in Flutter (which first entails somehow grokking what works in Flutter), you have to go from visual concept to hierarchical breakdown and then translate that into code in less than intuitive ways, and then when your graphic designer decides that such-and-such needs to be 2 pixels lower or the stars should get bigger in the middle, you're still going to be hosed or inserting fixed height shims all over the place (and how will that look on a tablet?)
This API seems too high level to produce polished products. Of course it's alpha so blah blah blah but being able to quickly produce generic stuff is not a proof of concept, especially if you can't then refine the generic stuff to the nth degree.
- Hixie 9y ago(I work on the Flutter team.) > This API seems too high level to produce polished products. You can target whichever level of Flutter's APIs that you want. Almost the entire stack is in Dart, from the compositor, to the layout engine, to the animation logic, to the composition (widgets) layer, to the material widgets. If one layer is too high level, you can go down one level and work directly there instead. The lowest level (the C++ layer) is literally just the Skia API, the Dart core APIs, a text rendering API, and a message-passing API for talking to your Java/Kotlin or ObjectiveC/Swift code. Everything else is layers you can directly poke at from Dart, written in Dart.
- Tloewald 9y agoThanks for addressing this specific issue (and hey, Hixie!) Obviously, I don't know much about the APIs so I'll take your word for it. I guess my first objection (doesn't unify web development) stands, but that can be addressed in future (and presemably Dart will work just dandy with Web Assembly). I assume my other objection can be addressed by simply building layouts directly and not using the autolayout stuff if you don't want.
- wmleler 9y agoConcerning your point about graphic designers, I recommend that people watch this talk about a designer and programmer working on a Flutter project -- https://youtu.be/BJCqRpvvTrM https://youtu.be/BJCqRpvvTrM One last comment about Dart. If you want to see the big benefit of Dart yourself, just go start up the sample Flutter app, modify it and do a (stateful) hot reload. Or introduce an error on purpose, and see how you can fix the error and then continue on from the same place in less than a second. The normal response I've seen from people who try this is to exclaim that this "is a game changer". [disclaimer: I liked Flutter so much I recently joined that project]
- copperx 9y ago> I liked Flutter so much I recently joined that project How can you do that?