danbalthasar
There are a number of us dedicated to this on the team internally at Google. It's definitely a priority. Each platform has its own challenges though, and there's a very wide variety of issues that can arise that are platform specific. The more feedback we can get about what people want to do that isn't working, the more we can address it :)
Xamarin and Qt are fine products, and I know Xamarin has been working on some improvements over deploy times, but it still can't touch what Flutter does there. And if you know C++ and C# already, Dart is a breeze.
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!
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).
Dart is easy to learn (espeically if you come from a JavaScript, Java, or C# background). It can be compiled in ways suitable for distribution in both Apple and Play Stores. And the Flutter team has direct access to the language team behind Dart to ensure that it works well for mobile development.
Geolocation plugins have been available for quite sometime now, as have encryption and file storage.
https://github.com/dart-lang/sdk/issues/4938 (Unions) https://github.com/dart-lang/sdk/issues/421 (Tuples)
Please feel free to contribute here! That said, it's certainly possible to work around these things. Dart has a tuple library (https://github.com/dart-lang/tuple) which covers a lot, and much of what you'd use Unions for can still be covered by accepting `Object` or `dynamic` parameter types and doing some typechecking.