Flutter | An introduction to the open source SDK by Google
Flutter is Google’s Mobile SDK to build native iOS and Android, Desktop (Windows, Linux, macOS), Web 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 ship 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
Flutter, Dart and equivalent technologies
First and foremost, let’s state the core differences between Flutter and React Native
|Initial release in 2017||Initial release in 2015|
|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|
|Current Version 2.0.1||Current Version 0.63|
|Flutter is the fasted growing framework for cross-platform development. Community support for flutter is amazing, with over 11100 Github stars, 15000 forks and over 41000 closed issues, it is leading the industry.||Community support for React Native is also good but it is not growing as fast as flutter. It has over 9300 Github stars, 20000 forks and over 19700 closed issues.|
To see the comparison of flutter with other mobile development frameworks and why you should choose flutter to refer to this -> Flutter – Best Alternatives for App Development.
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 that are keened for native end-user experiences.
- Expressive and Flexible UI: Flutter lets developers build beautiful looking apps with ease by using prebuild material widgets. Even though many widgets are prebuilt still flutter enables full customization of the widget.
- Fast Development & Hot Reloading: Hot Reloading refers to injection of 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 a 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 an established player in the field of cross-platform application development with amazing community support.