Understanding the Flutter Architecture.
So now that we know what Flutter is or that we at least have a rough idea about it, let’s have a look at the architecture of a Flutter application and there, the most important thing is that Flutter uses code to build a user interface.
Now let’s, first of all, have a look at that widget thing again.
In Flutter, everything is a widget, that’s important to understand, you build your entire app in a widget.
So we have the widget tree
You have this root widget which is your app itself, then you have different sections and in there you might have a text input, text output and so on. And Widget can also hold another widget, just kind the widget tree in mind.
UI as Code concept is also important, you build your UI with code not drag and drop.
One codebase thing or concept is also important to understand.
** How Flutter & Dart code Gets Compiled to Native Apps
Well your have your Dart code which uses the Flutter framework or the Flutter API as I call it here, which stands for Application Programming Interface
(API). At the end that just means that Flutter gives you a collection of functions, of widgets, which you can use in your code to build the interface you want to build.
Flutter simply compile that Dart code to native code for these different platforms and that happens with the use of flutter SDK and as a result, you get real apps to 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 performance because performance is actually a huge advantage of Flutter apps.
(React Native) Flutter does not use platform primitive. what does that mean? We’re having our Flutter app and we’re targetting iOS and Android. So flutter directly controls every pixel on the screen. So Flutter does not compile your code to some 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.