> showing pretty progress indicators, and just calling a single method won't do that.
No of course not, but let's not go down that road because Dart loses that battle too. With fetch, I just attach the .finally() callback and set my loading flag to false. It's one extra line. Showing an error state is also one extra line using .catch().
> we definitely need to make Flutter's network story better
You can try, but it'll just end up looking like fetch, it doesn't get any simpler than that. The fetch spec has been discussed on end, you're just going to have the same conversations they did.
And lo, when you have undergone all the work of making Flutter a first class package, you will step back and say "huh, our view layer looks just like HTML and CSS, and our logic looks just like JavaScript... we recreated Web!"