Hey there! In the previous post we have walked through the Introduction of Flutter, incase you haven't read that, you can read it here.
Now let's see what makes Flutter, the projected next big thing in Mobile App Development!
There are as of mid-2020, over 50,000 Flutter apps on Google Playstore. Over half a million developers use Flutter every month and how much they love it is evident in forums of GitHub and StackOverflow. Clearly, Flutter is emerging a winner in the cross-platform app development space and proving a worthy competitor to React Native.
In fact, the popularity of Flutter has soared significantly despite its being such a young framework.
Now as I said in the previous post, Flutter simply compile that Dart code to native code for these different platforms and that happens with the help of the Flutter SDK and as a result, you get real apps spit out with highly optimized high performance code that's based on your code but that's not your code itself, instead it's the compiled version of that code and therefore you really ship code that runs on the different platforms and that's optimized and high performant because performance is actually a huge advantage of Flutter apps, Flutter out of the box gives you high performance applications.
It's important to understand that Flutter does not use platform primitives. Now what do I mean with that? We're having our Flutter app and we're targeting iOS and Android. Now if we want to add a button then in Flutter with this UI as Code approach, we do so by adding a RaisedButton.
Now this is just an instruction in your Flutter code which tells Flutter to render a button in that part of your widget tree.
Now you could think that what happens when the code gets compiled to that native code is that this
RaisedButton is translated to "hey iOS, please give me your default button", which would be a
UI button element in the iOS development world and for Android, a
widget.button, that we get these native buttons which are of course part of the native development environments and that's NOT what happens!
Instead Flutter has its own implementations and that's really important to understand and to keep in mind, directly controls every pixel on the screen. So Flutter does not compile your code to some native equivalence or native alternatives, instead Flutter ships with its own engine which controls the entire screen, everything the user sees and renders every pixel on its own and that gives Flutter a lot of control and a lot of flexibility, sounds great right?
Now you don't have to care too much about that because Flutter does it for you but it's important to be aware of that because that gives Flutter more control and less limitations and therefore, you implicitly, indirectly benefit from that.
You have a good performance, you have a lot of power, a lot of things you can configure, you have full control over how you want to build your user interface!
Thanks for giving this a read, have a great day!