What is Flutter?

Blog > Flutter

Nowadays mobile applications have become very popular. Every day people come up with new mobile app ideas. Therefore, developers have started to use cross-platform tools to quickly build and publish mobile applications. One of these cross-platform tools is Flutter.

Flutter is developed by Google. It is a brand-new framework that is released in 2017. Flutter is an open-source and free mobile application UI development framework that continues to grow. One of the biggest e-commerce company Alibaba developed their mobile apps with Flutter. It allows us to develop mobile apps for both IOS and Android at the same time by using one programming language. Dart is the programming language that we use when developing modern applications with flutter.

Let's look at the terms you will encounter frequently while using Flutter. When developing mobile apps with Flutter, one of the words you will often hear is the Widget. One of the most popular phrases is "Everything is a widget" about Flutter. You can think of widgets as UI components in Flutter. While developing the UI of an app, we use some basic components such as buttons, text fields, containers, columns, and rows are called also a widget. Columns and rows are often used to build layouts. They have the same logic of linear and horizontal layouts in Android.

The other terms are Stateful and Stateless Widgets. These widgets are the parent widgets of your UI components that I mentioned earlier. Stateless widgets are used when we don't have to change anything in UI. It means there will be no user actions on these parts of the app. The children of Stateless Widgets are immutable. Stateless widgets are builds once. Stateful Widgets are dynamic widgets and their state is mutable. Stateful Widget rebuild itself. It means we use Stateful Widget when UI might be changed during runtime. To make changes on UI we use setState method in Stateful Widget. This method notifies the framework and rebuilds the UI to update the state of component.

Let's talk about the benefits and advantages that Flutter brings us.

It is easy to create modern mobile applications with Flutter. Also, it has really nice and understandable documentation.
Flutter is a total time saver since we can develop for both platforms at the same time. Also, you can see your changes in a short amount of time with the hot-reload feature.

  • Apps developed with Flutter have the same performance as native applications.
  • Since Flutter is open source, it is customizable easily. There are also a lot of packages you can use that are developed by other developers. You can check https://pub.dev/ to use packages that can help you.
  • Dart is easy to learn and has understandable syntax.
  • Flutter has material widgets with regard to material design rules. Besides being easy to customize the UI of your apps, you can use material design widgets that have parameters that all you need.
  • Flutter has animations that easy to implement. Also, you can create custom animations easily.
  • Flutter uses 2D rendering engine called Skia. Therefore, we can develop apps for both IOS and Android.
  • Flutter has easy integration with editors such as IntelliJ Idea and VS Code. I recommend VS Code for Flutter because of extensions that can be very helpful.
  • Flutter continues growing. Recently, Flutter has developing web support that can be built from a single code-base like IOS and Android.

I really enjoy when developing with Flutter. Flutter has a helpful Youtube channel. I recommend Widget of the Week series on their channel for beginners. It is very helpful to start learning Flutter.