Flutter is the Google’s Mobile SDK to build native iOS and Android apps from a single codebase. When building applications with Flutter everything towards Widgets – the blocks with which the flutter apps are built. They are structural elements that ships with a bunch of material design specific functionalities and new widgets can be composed out of existing ones too. The process of composing widgets together is called composition. The User Interface of the app is composed of many simple widgets, each of them handling one particular job. That is the reason why Flutter developers tend to think of their flutter app as a tree of widgets.
Types of widgets:
- Stateless Widgets
- Stateful Widgets
- Inherited Widgets
Flutter, Dart and equivalent technologies
First and foremost, let’s state the core differences between Flutter and React Native
|Based on Dart||Based on React Js|
|Controls every pixel on the screen||Controls via the native mobile components|
|Cross Platform ( Mobile, Web, Desktop )||Cross Platform ( Mobile, React Native Web )|
|Developed by Google||Developed by Facebook|
Instead of Writing XML files, the Layout tree would be built as:
And, the biggest selling point of Flutter Tech are two things:
- High-Performance App: The Apps developed using Flutter are highly expressive and have flexible UI. Its Fast development due to hot reloading brings the app to life and its expressiveness provides features which are keened for native end-user experiences.
- Hot Reloading: Hot Reloading refers to inject new versions of the files that you edited at runtime while keeping the app running.
The Pros and Cons of Flutter:
- Flutter uses a single codebase, called, Dart for both platforms, Android and iOS which is a simple language ensuring type safety.
- Both Flutter language and community are developing with great speed, releasing new features, widgets and add-ons.
- Flutter has its own set of widgets rather than using the widgets provided by the host operating system which means the user provides its own gesture recognition model, thus, having greater control over the precise rendering or customization of the widgets.
- The hot-reloading is a game-changer in the productivity of the development process. It gives a lively effect to the app under development, thus making the whole development cycle more exciting for the UI/UX developer using Flutter.
- Flutter is not bound to the ROM w.r.t. the widget system. So, it enhances its portability over wide ambit of Android versions and thus, lowering its dependencies on the host platform.
- Dart and Flutter unite closely to optimize dart Virtual Machine(VM) for those mobiles which are specifically needed by Flutter.
- Flutter is a newbie in the Tech-World compared to it’s relative technologies. The community is not as wide as React Native, for example.
- The support is not so much developed for the same reason that the framework is not so spread.
- Flutter is a very young language thus, by now, it lacks in plugins and various iOS/Android libraries because these libraries account for a huge volume.
- Top 5 Open Source Source and Free Static Code Analysis Tools in 2020
- Contributing to Open Source : Getting Started
- Gradle Build Tool I Modern Open Source Build Automation
- Making your first Open Source Pull Request | Github
- How to begin Contributing to DuckDuckGo’s Open Source Community
- Step Wise Guide to start with Open Source
- Software Freedom in FOSS (Free and open-source software)
- Top 5 Free and Open-Source Version Control Tools in 2020
- Top 5 Open Source Code Editors in 2020
- Top 5 Open Source Java Frameworks in 2020
- Top 5 Free, Cross-Platform, and Open-Source Database System in 2020
- Top 5 Reasons to Contribute to Open Source Project
- Top 10 Open-Source NoSQL Databases in 2020
- How to Get Started With Open Source Contribution ?
- Top 5 Open-Source Online Machine Learning Environments
- How to Hack a Open WiFi?
- Download Anything to Google Drive using Google colab
- Why Google Shutters Google+ ?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.