Flutter is going to be 3 years old from its first alpha release and its evolving very fast. Recently flutter team moved Web to beta channel means soon it will be in stable and can be used in production, also they moved macOS from technical preview to alpha in master channel and it has been just only released as stable for one year but there is another side of this story as people fear that Google will close this project as they are close there products but here I am giving you reasons why I want to invest in Flutter.
For heads up I worked on all major platforms for developing cross platform apps and web apps like Angular 2+, React, Vue, Svelte, React Native, Nativescript and Ionic. Haven't dabbled with Vue Native but from documentation it seems similar to React Native and is based on React Native.
Dart
Being from Javascript family of programming languages Dart is pretty easy to learn. It has all the features of Javascript and more. Dart runs on its own VM, can be transpiled to Javascript with better optimisations and it can be compiled to native binary. If you are native android developer you will see a similarity with other language used for mobile app development Kotlin - it also have all similar feature only difference it runs on Java VM.
So coming on point, Dart is easier to learn and get going and it should not be difficult for any programmer to learn it.
Flutter
I am from a C/C++ background, learned programming with these two languages and love their performance. Flutter has its own engine (Skia) which is written on C++ and it handles all rendering just like a game engine. It also uses available GPU on your device to rendering and which in turn gives 60 fps output but all this is taken care by framework itself and developer not have to deal with these things. You dart logic will continue to run on CPU while GPU will handle UI part in a different thread.
In Flutter, everything is a widget and follows composition. Like you are known with React Native to display a text you need to have <Text>Hello</Text>
and in Flutter similarly Text('Hello');
and you can see similarity but similarity ends here as in React Native is converts your jsx to native UI elements/components, Flutter in turn renders this on Skia canvas without depending on native elements . Also, it provides many features in this simple call of text
Text(
'Hello',
style: TextStyle(
fontSize: 25.0,
fontWeight: FontWeight.bold,
fontStyle: FontStyle.italic
)
);
and that's it, no need for extra stylesheet and even if you forget any parameter, there is plugin for your editor which can help you out with suggestions.
Animations in Flutter are breeze as I said its like a game engine and it's rendering is handled by GPU so its very much optimised to perform multiple re-renders giving you a smooth animation experience.
Will Flutter kill others?
Simplest answer is no. People who think this are very wrong.
No framework or language or library is going to kill other one. Did people stopped using Java when Python came or did people stopped using Python when Node came and similarly for Node and Golang. On frontend, did people stopped using React when Angular 2+ came or Vue came, or did people stopped using Android SDK when React Native came? Answer to all above questions are not. People use what they feel comfortable with and what gives them their desired output with less time.
People who already build their production app with React Native, Nativescript or Ionic will continue with that cause there apps are already cross platform and until unless Flutter provide some solid use case no one wants to move. If someone built iOS or Android app only and want to do cross platform they will surely look out for Flutter.
Why to invest in Flutter?
First of all, I like to experiment with new technologies and improvement over already present technologies. I see potential in Flutter to be a good cross platform framework not for only mobile but truly cross platform supporting Web, Mobile, Mac, Linux and Windows. Also react native is improving supporting windows as platform and Nativescript supporting MacOS as platform.
Happy Learning, Happy coding!