Skip to content
Related Articles

Related Articles

Improve Article
Flutter | An introduction to the open source SDK by Google
  • Difficulty Level : Easy
  • Last Updated : 12 Mar, 2021

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
 

Flutter and Dart--GeeksforGeeks

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

FlutterReact Native
Initial release in 2017Initial release in 2015
Based on DartBased on React Js
Controls every pixel on the screenControls via the native mobile components
Cross-Platform ( Mobile, Web, Desktop )Cross-Platform ( Mobile, React Native Web )
Developed by GoogleDeveloped by Facebook
Current Version 2.0.1Current Version 0.63

App performance is higher. Flutter 60 fps 



or 120 fps animation. Flutter itself paints 

and controls every  single pixel on the screen

High. It requires the javascript bridge

to interact with the native components.

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

issued 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 start, 20000 forks and over 19700 closed issues.

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.

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: 
 

Dart




import 'package:flutter/material.dart';
 
class GeeksforGeeks extends StatelessWidget {
  @override
  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 that are keened for native end-user experiences.
  2. 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.
  3. Fast Development & 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:
 

Pros: 
 

  • 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.

Cons: 
 

  • In reality, there are no cons to flutter because there isn’t any other framework as effective and elaborate as flutter. Even though if we have to list any it would be related to Dart programing language as while converting dart to javascript there are some bugs to be fixed, dart doesn’t have a framework for backend, etc.

 

Try out the all-new GeeksforGeeks Premium!




My Personal Notes arrow_drop_up
Recommended Articles
Page :