Flutter | An introduction to the open source SDK by Google

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

Flutter and Dart--GeeksforGeeks

First and foremost, let’s state the core differences between Flutter and React Native

Flutter 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

The very first difference between Flutter and React Native is that it does not use any of the text tags which are most popular on the internet. React Native use JSX, CSS, and JavaScript but Flutter is nowhere like that. It is focused on a single codebase and that single codebase is going to produce iOS and Android apps. Now, this single codebase is Dart, supported by the Flutter framework itself. Dart is a client-optimized language for fast apps on multiple platforms, developed by Google. If you have used Java before, Dart would look very familiar to you.

Instead of Writing XML files, the Layout tree would be built as:





import 'package:flutter/material.dart';
class GeeksforGeeks extends StatelessWidget {
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: "Hello Geeks!",
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text("Hello Flutter"),
        body: new Container(
          child: new RaisedButton(onPressed: _handleOnPressed),


And, the biggest selling point of Flutter Tech are two things:

  1. 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.
  2. 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.

My Personal Notes arrow_drop_up

Experienced Python Developer skilled in SQL Cascading Style Sheets (CSS) Java C++ and C Strong engineering professional with a BTech focused in Computer Science & Engineering from Deen Bandhu Chhotu Ram University of Science and Technology Murthal Sonipat

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.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.

Article Tags :


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.