What is Flutter?

Flutter is a cross-platform app development platform for iOS and Android developed by Google that is used to create native apps for Google.



Flutter consists of 2 important components:

  • An SDK (Software Development Kit): A collection of tools that will help you develop your applications. This includes tools to compile your code into native machine code (code for iOS and Android).
  • A Framework (UI Library based on widgets): A set of reusable user interface (UI) components (buttons, text inputs, sliders, etc.) only me.

Origin of Flutter?

– In 2015, there was an early version of Flutter named “Sky” in a Dart developer Summit, running on Android operating system with positive results.
– May 2017 The first official version of Flutter was released.
– Up to now, many Stable versions have been released continuously.
– Currently, the Flutter community is growing at a very fast rate and contributes a significant part to the development of the Flutter SDK.
– There are many companies that have developed their applications using Flutter. Here are some typical companies:

What is Flutter's feature?

  • Flutter in the eyes of experts has been and is a react framework.
  • Flutter uses a very simple and easy to learn Dart programming language.
  • Flutter can rapidly develop applications with ease.
  • User interfaces are usually very nice and flexible.
  • It can support a lot of different widgets.
  • Flutter will be presented right away on a completely different platform.
  • Applications possess high performance and fast.

Advantages and disadvantages of Flutter

Advantages

  • Flutter's user interface is flexible.
  • No need to go through a virtual machine or a phone, Flutter can fix bud and develop quickly to save a significant amount of time.
  • Create convenience for users with the ability to communicate almost directly with the system.
  • With Flutter, widgets can be combined with different platforms to deliver amazing performance.
  • Although Flutter uses static-type languages, it is built in a flexible, modern and convenient syntax for system building and programming.
  • Giving users the ability to build a variety of platforms and run them right on the web device.

Disadvantages

  • Flutter uses a completely new data model, Dartt streaming and block pattern, so it will take you a long time to learn it.
  • To be able to self-study Flutter, you need to learn and understand the Dartt programming language.
  • Flutter's UI renderer was almost entirely rewritten and developed separately. This makes application programming difficult.

Flutter Architecture

  • In Flutter, it all boils down to widgets, a compound widget will include other widgets inside. Thanks to this flexible combination we can create any complex application.
  • Interactive features will be integrated whenever thanks to the GestureDetector widget.
  • The state of the widgets is managed by the StatefulWidget widget.
  • Flutter provides class design so that any class can be programmed depending on the complexity of the task.

Flutter programming language

  • To program with Flutter, you will use a programming language called Dart. This language was created by Google in 2011, it has improved a lot over the years.

  • Dart is an open source, general-purpose object-oriented programming language with C-style syntax developed by Google in 2011. The purpose of Dart programming is to create frontend user interfaces for web and mobile apps. It is in active development, compiled to native machine code for building mobile apps, inspired by other programming languages ​​such as Java, JavaScript, C# and Strong Typed. Since Dart is a compiled language, you cannot execute your code directly; instead, the compiler parses it and converts it to machine code.
  • It supports most of the general concepts of programming languages ​​like classes, interfaces, functions, unlike other programming languages. Dart language does not support arrays directly. It supports sets, which are used to copy data structures such as arrays, generics, and optional types.

Flutter's Great Potential in App Development

With a lot of advantages both in terms of app building time and construction costs as well as the smoothness and beautiful interface of Flutter Apps. There have been many positive predictions in the developer community around the world about Flutter's potential in the application development industry in the future.

Some photos of developers' comments around the world are as follows:

  • According to the above comment by developer Alireza Isazade, he has the following meaning: He is a long-time native Android and Kotlin developer, he sees great potential of Flutter than React Native, because of the large number of native android developers moving Learning and using Flutter is a lot in recent years, and he predicts Flutter will be the platform for the multi-platform operating system Fuchusia OS, Flutter's github page is also growing very fast after just over 2 years.

  • According to Jorge's comment, he is programming Flutter App and it is awesome.

  • According to the above comment by Bartturner, He is a long time application developer for over 30 years and he found Flutter to be the best experience he has ever seen.

When compared to React Native which is also a cross-platform in terms of google trends searches, Flutter is clearly more searched.

There is another point to note that, Flutter is also used to develop other applications such as Web, Computer .. while React Native is only used in mobile application development, so that is also one reason Flutter is found. earn more than React Native.

Through some of the above examples, Flutter is currently receiving a lot of attention and positive reviews. Looks like it has great potential for Flutter in the application development industry.

Install Flutter on Windows

  • Then the flutter SDK downloads. After the download is complete, you extract the downloaded file (Extract here option) we will get a folder called flutter. Please put this folder somewhere you want.
  • Add flutter to PATH environment variable

    1. Click Start, search for "env" and select Edit environment variables for your account

    2. Click Environment Variables

    3. Select Path and Edit

    4. Click New and add the path to the extracted flutter\bin folder

  • So you can run flutter command from Command Prompt already. Now let's check it out. Open Command Prompt and run the command “flutter –version”. If it shows information about Flutter, framework, dart version... then you have successfully installed.

Next, we will have to install the IDE to code with Flutter:

To create an Android Studio virtual machine, follow these steps:

  • Open Android Studio: 
  1. Select Tools/AVD Manager
  2. Select Create Virtual Device
  3. Select a device and click Next
  4. You can choose an x86 or x86_64 image (recommended the latest version - if not available, click Download and wait a bit for it to load that image) then click Next
  5. In the Graphics section, select Hardware – GLES 2.0. You can edit other options if you want and click Finish to create the virtual machine.
  6. Press the ▶ button to run the newly created virtual machine.

After installing Android Studio, we install flutter extentions for Android Studio:

  • File > Settings... > Plugins (Windows)

After installing Flutter Plugin successfully, you need to restart Android Studio for changes to take effect. 

Create and Run Project Flutter

Step 1: Open Android Studio. Create Flutter project. To create a project, go to File->New->New Flutter Project. The following screen helps to understand better.

Step 2: In the next wizard you need to select Flutter App. For this, select Flutter Application-> click Next, as shown in below screen.

Step 3: Next, configure the application details as shown in the screen below and click the Next button.

Project Name: Write the name of your application.

Flutter SDK Path: <path_to_flutter_sdk>

Project location: <path_to_project_folder>

Description: <A new Flutter hello world application>.

Step 4: In the next wizard, you need to set the company domain name and click the Finish button.

After clicking the Done(DONE) button, it will take some time to create a project. Once the project is created, you will receive a fully working Flutter application with minimal functionality.

Step 5: Now, run the application. To do this, go to Run->Run main.dart, as shown in the screen below.

Step 6: Finally, you will get the result like the screen below.