What is Flutter and Why Should You Learn it?

Shota Nukumizu
4 min readAug 4, 2022

--

©storyset

Introduction - What is Flutter?

Flutter is an open source (source code is publicly available) framework for mobile apps released by Google in 2018. A framework is a tool that brings together all the functionality needed to develop a mobile app. By using a framework, you can develop applications easily and quickly.

Flutter is unique in that it allows you to develop apps for both Android and iOS in a single language. Strictly speaking, not all apps can be developed with 100% of the same source code, but if the app is limited to basic functions, it can be developed for both Android and iOS.

What is Dart?

Flutter is developed with Dart. Here is a brief explanation of Dart.

Dart is a programming language developed by Google in 2011. It was initially designed as a language to solve the problems of JavaScript (so-called AltJS), similar to TypeScript. It was not widely adopted in the market when it was first developed, but gained attention with the appearance of Flutter.

The syntax is similar to JavaScript, so it is not that difficult to learn if you have the prerequisite knowledge of JavaScript. The main features are as follows.

  • High productivity
  • Object-oriented with class-based
  • Support for both static and dynamic typing
  • Efficient front-end development since one language can play the role of both HTML and CSS
  • Can be converted to JavaScript
  • High security performance
  • Support for a variety of operating systems (Windows, macOS and Linux all supported)
  • Low learning cost

The Characteristic of Flutter

Merit①: Shorten development time and reduce development costs

One major difference from native development using Swift, Kotlin, etc. is that Flutter allows you to develop apps for both iOS and Android with a single code, shortening development time. This leads to a reduction in the amount of code and man-hours worked, resulting in shorter development times and lower costs.

Merit②: Reduce Maintenance and Operations Costs

Flutter is good at cross-platform development (in this article, this means developing apps for both Android and iOS), which leads to reduced maintenance and operation costs.

In native development, programmers in charge of Android and iOS development must be involved in maintenance and operation. Cross-platform development, however, requires only one language to be mastered, making it easy to secure manpower resources and reducing maintenance and operation costs.

Furthermore, Flutter’s development language, Dart, supports static typing, which reduces the risk of bugs. Therefore, there is no need to develop separately for each OS, which reduces debugging work, adds functions, and changes specifications.

Cross-platform development is beneficial not only during the development phase, but also in the long run.

Merit③: Hot reloading

Flutter has a feature called “hot reloading” that immediately reflects code changes in the UI. The greatest advantage of hot reloading is that when you change a program, you can immediately see the changes. This spurs increased efficiency in application development.

Merit④: Extensive UI design

Flutter uses Material Design, which is recommended by Google. Material Design means a design that users can intuitively understand and operate. Material Design excels at developing common UI designs that are platform-independent.

Flutter also offers a wide variety of icon and animation designs, and is good at creating visually appealing designs.

Demerit: Not good at working with terminal-specific features

Of course, Flutter also has its disadvantages. One of them is that it does not work well with device-specific features.

Because Flutter is cross-platform development, it is not good at integrating with Android or iOS specific features. If you want to develop an app that fully utilizes the device-specific features, we recommend Swift or Kotlin instead of Flutter.

The Usecase of Flutter in Japan

Here are some Japanese companies and products that are using Flutter in practice.

Jalan

Jalan is often used to book accommodations and hotels for travelers. The company used to release their respective Android and iOS apps over 10 years ago, but by switching to Flutter, they have succeeded in reducing their maintenance and operation costs.

Reference: Flutter移行の苦労と、乗り越えた先に得られたもの

Green

Green is a Japanese IT recruiting media company that has been successful in recruiting programmers who can develop mobile apps in Flutter.

Reference: 求人メディア Green の Android アプリを Flutter で開発した裏話 — note

Cyber Agent

CyberAgent is a large Japanese company that operates an advertising business and the web media “Abema.” By implementing Flutter, they were able to solve both the “functional differences between iOS and Android apps” and the “need to standardize the engineering for iOS and Android. and the need to standardize engineering for both iOS and Android.

Reference: Flutter導入から見るクロスプラットフォーム開発のリアル — CyberAgent Way

The Reason Why You Should Learn Flutter

From here on, it is my personal opinion, but the reasons why you should learn Flutter are as follows.

  • Because it has a wealth of information and community activity
  • Because you can develop apps for both Android and iOS
  • Because you can learn the basics of mobile app development

Flutter is a great framework for beginners to learn the basics of mobile app development because it is informative and the learning cost is not that high. Also, Flutter has an official YouTube channel so the community is very active.

Summary

In this article, we have thoroughly explained the following topics.

  • Overview and features of Flutter
  • Overview of Dart
  • Examples of Flutter use in Japanese companies
  • The Reason why you should learn Flutter

Flutter is a good thing to learn if you make a living developing apps. I hope this article will help you learn Flutter.

References

--

--