What gives Flutter the edge over its other alternatives?
Tags: flutter, ios, android, dart
Published: 2021-07-16 06:54:41

*Hey there! In the previous post we have walked through the Introduction of __[Flutter](https://flutter.dev)__, incase you haven't read that, you can read it [here](https://dev.to/geekyprawins/understanding-flutter-a-beginner-s-guide-2l6h).*
Now let's see what makes Flutter, the projected next big thing in Mobile App Development!
![memeF1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18r9vvhueh1okb3dtvwp.jpg)

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](https://github.com) and [StackOverflow](https://stackoverflow.com). 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.

![f2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nrlm6g87h29jvemz9stm.jpeg)
 
##*How unique is Flutter?*
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.

##*The Flutter advantage*
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 <code>RaisedButton</code> is translated to "hey *iOS*, please give me your default button", which would be a <code>UI button</code> element in the iOS development world and for *Android*, a <code>widget.button</code>, that we get these native buttons which are of course part of the native development environments and that's **NOT** what happens!
![flutter_icon_1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xp32bchqtk9hj20i7wi1.jpg)
 
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?
![9amcr9hg112df5ckybbh](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4uv0agpybd8ikmwmsiwx.png)
 
##*Conclusion*
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!
[Praveen Varma](https://github.com/geekyprawins).