Flutter | An introduction to the open source SDK by Google

Google has finally laid its steps into cross-platform mobile development. As a part of Mobile World Congress 2018, Google announced the first beta release of Flutter. So, Flutter is Google’s mobile UI(User Interface) framework for constructing high-quality native interfaces on iOS and Android in record time.

Flutter and Dart--GeeksforGeeks

First and foremost, let’s state that what Flutter actually is and What it is not.

It has sometimes been stated that Flutter is Google’s reply to the Facebook’s React native. Considering this wrong is not totally true but yeah Flutter is not truly same to react Native but a little bit different than that.
The very first difference 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 their own, newly born language, called Dart. Dart is not so hard, it’s relatively easy. If you have used Java before, it would look very familiar to you.

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

filter_none

edit
close

play_arrow

link
brightness_4
code

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), ), ), );
    }
}

chevron_right


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

Pros:

  • Flutter uses a single codebase, called, Dart for both platforms, Android and iOS which is a simple language ensuring type safety.
  • 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 a greater control over the precise rendering or customization of the widgets.
  • The hot-reloading is a game changer in the productivity of 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.

Cons:

  • Flutter is a newbie in the Tech-World if your management is not so audacious, it may be best to wait for some time to start using it for big Projects.
  • The installation process of Flutter is a bit of traditional when it comes to manual setting up environment variables. Also, its installation requires cloning of a GitHub repository which actually needs to be revised by Google because the whole bunch of required files and folders get stored into a single Directory. If by chance, that Directory is deleted, the whole Flutter would ultimately be gone.
  • Flutter is a very young language thus, by now, it lags in plugins and various iOS/Android libraries because these libraries account for a huge volume.
  • There is no Map Widget in Flutter. Maps in Flutter can be implemented using native Activity/UIViewController.
  • The Version of Flutter available till now, is less stable than the already prevailing mature platforms, thus, developers have to be very careful while many bugs and their fixes.


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 :

5


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