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 )|
|Developped by Google||Developped 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 addons.
- 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.
- GIT | An Introduction to Github
- How to search faster with Google
- MongoDB : An introduction
- Beginning BootStrap (Part-1) | Introduction and Installation
- Contributing to Open Source : Getting Started
- How to prepare for Google Asia Pacific University (APAC) Test ?
- Gradle Build Tool I Modern Open Source Build Automation
- Introduction to Apache Maven | A build automation tool for Java projects
- Bloom Filters - Introduction and Python Implementation
- How Google Search Works!!
- Making your first Open Source Pull Request | Github
- How ranking in Google Search Works !
- Introduction To Machine Learning using Python
- Speech Recognition in Python using Google Speech API
- How Google Updates Itself!
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.
Improved By : MihailYonchev