I’ve had almost the exact same experience. Getting up and running is a breeze, and while you stay within the possibilities of the provided examples and built-in components, everything runs smooth and takes virtually no time to implement.
Then you need something more complex, so you install a package and get it working with sometimes huge effort. A few month later you revisit the project and discover that everything is outdated. Google recommends always running the latest flutter version, so you upgrade that pronto. Ups, everything is broken now, as all your dependencies use weird idiosyncrasies of specific Flutter APIs. No problem, you upgrade all your deps too. Oh no, my app, it’s broken, because of course something pre-1.0 can break its contract willy-nilly. And this repeats everytime you stop working on your app for a longer stretch of time.
thanks for the warning, I wanted something easier than the android compat-dependency experience
I’m generally a big fan of Flutter because 1) I spent a long time using Dart (for web stuff, pre-Flutter) and really enjoy the language it has become, and 2) I strongly dislike Apple’s development ecosystem, partly because I’ve just never taken the time to learn it, but I’ve also never had a good reason. Flutter lets me create simple cross-platform mobile apps in an ecosystem I’m comfortable with. That being said, I recognize that it sucks for anything complex or specialized.
From my perspective as someone who writes ES6 frequently, whenever I see Dart code samples it just seems like an inferior predecessor. Like they were improving ES5, but didn’t get it quite right. What am I missing? What do you like that modern JS can’t do?
Basically, static types. TypeScript is nice as well, but Dart has some advantages for non-web stuff, like the ability to compile to a statically linked binary. Honestly, I wouldn’t even use Dart any more for web stuff (or at least web-first stuff), I would just use TypeScript in that case.
Interesting, but also written about a year ago. Have things improved since?
Well the two bugs they ran into are still present today, so apparently not very much, if at all.
The individual bugs might have been fixed, but the core problem won’t have changed. If you want to have a cross-platform app then you need an abstraction layer that does two things:
Someone needs to maintain that code. You have two choices:
The first option is a lot cheaper but lacks flexibility and means that you’re going to depend on something large (whether it’s a single very large thing or is split into a load of distinct packages is somewhat orthogonal to this).
I was thinking about stuff like has the flutter team grown so that bug count can be managed