Introduction: Fundamentals Of Flutter Framework
Flutter was first released by Google in May of 2017. It’s a framework for developing apps for smartphones and other mobile devices that’s quick and safe. Flutter offers useful services for developing quick apps. It has proven to be a paradigm of open development.
In comparison to previous frameworks, Flutter is created in a completely different style, more like a game engine than a typical application framework. I’ll go over the fundamentals of how Flutter works and how it achieves its simple, high-performance goal. Your app is made up of Widgets that are rendered onto a Skia canvas and transmitted to the platform at a high level. The platform displays the canvas and responds to events as needed.
Ahead of Time compiled, your app runs natively on the platform.
Layers In Flutter Framework
Platform
Flutter provides a Shell that hosts the Dart VM at the platform level. The Shell is platform-specific, providing access to native platform APIs and facilitating the creation of platform-specific canvas. If you wish to utilize Flutter as a library rather than hosting and running an app, there is also an embedder API.
The Shells also aid in communication with relevant IMEs (such as the keyboard) and system application lifecycle events.
Engine
The engine is the next layer up, providing the Dart Runtime, Skia, Platform Channels and much more. You can see more of what the engine provides in the architecture diagram in the Flutter Wiki.
The Flutter engine runs within the platform’s Shell.
Flutter Framework
For app developers, the Flutter framework is the most useful. It provides everything you’ll need to work with while creating your app.
Flutter apps may be made to look like native iOS or Android apps with the correct themes. Material is for Android and Cupertino is for iOS. Regardless of themes, you may make your app seem anyway you like.
Widgets are the fundamental components of your app. Flutter has no built-in controls or components. The UI output is drawn by Flutter on a Skia Canvas. Because Flutter simply has Widgets, the complexity is greatly reduced. Widgets are user interface controls that you can incorporate into your app. Stateless or Stateful Widgets will make up the majority of your app.
You’ll have an immutable UI model that you can continue to generate as needed, and Flutter will render it for you. The Flutter framework includes extensive animation, painting, and gesture capabilities, allowing you to customize the behavior of any widget you develop.
The UI will be moved to the Engine to be handled after it is finished and rendered.
Rendering Pipeline
Flutter is more like a gaming engine than a traditional app framework. As the UI evolves, it is produced and rendered on a Skia Canvas. Flutter uses the GPU to update the UI at 60 frames per second. While this has no bearing on how you build an app, it does explain why the Flutter UI is so smooth.
When Dart-based application code interacts with UI-related components, it will continue to run on the CPU and in the dedicated UI Thread.
Conclusion
Flutter has a lot going on behind the scenes, and I’ve just scratched the surface of each section. As always, If you have found this article useful do not forget to share it and leave a comment if you have any questions. Happy Coding
Leave a Reply