The origin of the Flutter

Flutter was born out of an internal experiment by the Chrome team. Google’s front end team removed some of the “messy” specifications on the front end and found performance improved by a factor of 20 in benchmark tests.

Therefore, Flutter is born on the front end, and based on the reason for its birth, we can see that Flutter itself does not have much grammatical sugar. As a framework, Flutter is “conservative”, and the Dart language chosen is also conservative. And its programming mode, grammar with a strong front-end color, but it is the first to use in the development of mobile clients.

Reasons to learn Flutter

In most of my experience with Flutter, a large part of it is actually “forced” to use Flutter. One of the most “powerful” reasons is that I have to start learning about Flutter because my leader or boss requires it: Unless you choose to jump ship and move on.

1. Personal competitiveness

The following figure shows a production application of Flutter on a personal phone using libChecker statistics. Just to show you this: Flutter is no longer the niche framework it once was, but has become one of the mainstream cross-platform development frameworks in the past two years.

So Flutter can really help you find a job, but I don’t recommend learning Flutter from scratch, because Flutter itself is just a cross-platform UI framework.

Flutter can amplify your business development capabilities and allow you to participate in more platform development, be it big front-end or KPI**. Of course, these React-Native and Uni-apps can also give you, even less for front-end development, so why Flutter?

In fact, one interesting point is that learning to Flutter is equivalent to learning more than 70% of Jetpack Compose for Android native development.

2. Consistency of Flutter

In fact, I personally always recommend the client to learn Flutter, because for the front-end, react-native and Uni-app are indeed more expensive. Of course, it seems that your leaders and bosses don’t think so.

So what are the additional benefits of using Flutter? That is the performance and consistency of Flutter.

Because Flutter is a UI framework, it is truly cross-platform! Because unlike React-Native and Weex, Flutter controls are not rendered by native controls, but by platform-independent rendering capabilities provided by the Flutter Engine. That is, the controls of Flutter are not platform dependent.

To put it simply, native platforms provide a Surface as an artboard, and all that remains is for Flutter to render the corresponding controls, which are eventually packaged into AOT binaries.

So Flutter’s UI controls can be wySIWYG, which is an important development for me personally.

3. The performance of Flutter

  • 1. The difference between Debug and release performance of Flutter is huge because of the difference between JIT and AOT.

  • 2. Don’t test performance on emulators, it doesn’t make sense because the Flutter on mobile relies more on the GPU’s capabilities.

  • 3. The mixed development of Flutter will have an impact on performance. For example, in the original Android project, the business logic of a module was changed to Flutter, which will have a great test on performance and memory. This is the negative effect of Flutter independent control rendering and stack management mentioned earlier.

  • 4, the same framework under different people will write different results, generally for ordinary developers, popular framework generally does not bring great performance bottlenecks, but more development capacity leads to project bottlenecks.

How to learn Flutter?

To help you learn about Flutter quickly and painlessly, here is a free note on Flutter learning from Git Gao Xing.

Mobile developers who haven’t picked up the Flutter yet in 2021 should check out this study note!

Arrange the outline

  • Why is Flutter the ultimate cross-platform development choice
  • Build Flutter development environment on Windows
  • Write your first Flutter App
  • Build and debug the Flutter development environment
  • Basic Grammar for Dart Grammar Part 1
  • Use of the Dart Syntax set and Source Code Parsing (part 2)
  • Dart Set Operator Functions and Source Code Analysis (part 3)
  • Use of functions in Dart Syntax chapter (4)
  • Object-oriented Basics for Dart Syntax (part 5)
  • Object-oriented Inheritance and Mixins in Dart Syntax part 6
  • Dart Syntax: Type System and Generics (part 7)
  • Flutter in the widget

Note: Since there is no standardized and systematic arrangement on the Internet at present, the contents of this study manual are collected and arranged on the Internet according to a framework of the author. This article is open source, only for technical exchanges and sharing, thank you big guyMr PandarightThe Dart grammarPart of the blog to share, thanks to the collation of information partners. You can learn more about flutter by clicking on it!

Due to space limitation, some screenshots of the content are shown. If you need these documents, you can support me by clicking “like” and then[Click here]Get it free.

Information details

Why is Flutter the ultimate cross-platform development choice

  • Why is that?
  • Cross-platform development
  • What is a Flutter
  • The characteristics of Flutter
  • Tools for Flutter building applications
  • Hot app built with Flutter
  • The cost of building the Flutter application


Build Flutter development environment on Windows

  • Using a mirror
  • System requirements
  • Access to Flutter the SDK
  • Editor Settings
  • The Android Settings
  • Get started: Configure the editor
  • Getting started: Experience
  • Experience thermal overload
  • Creating a new application
  • Run the application

Chapter 3: Writing your first Flutter App

  • Step 1: Create the Flutter app
  • Step 2: Use external packages
  • Step 3: Add a Stateful Widget
  • Step 4: Create an infinite scrolling ListView
  • Step 5: Add interactions
  • Step 6: Navigate to a new page
  • Step 7: Change the UI using the theme


Chapter 4 Setup and debugging of Flutter development environment

  • Setup of development environment
  • Installation and debugging of the simulator
  • Setup of development environment
  • Installation and debugging of the simulator


Chapter 5 basic Grammar for Dart

  • Hello Dart
  • The data type
  • Variables and constants
  • Set (List, Set, Map)
  • Process control
  • The operator
  • abnormal
  • function


Chapter 6: Use of the Dart Syntax set and Source Code Parsing (II)

  • List
  • Set
  • Map
  • Queue
  • LinkedList
  • HashMap
  • Map, HashMap, LinkedHashMap, and SplayTreeMap
  • Naming the difference between the constructors from and of and suggestions for using them


Chapter 7 collection Operator Functions and Source Code Analysis for Dart Syntax

  • Iterable (Iterable class diagram, Iterable class method diagram…)
  • ForEach (Introduction, usage, source code analysis……)
  • Map (Introduction, usage, source code analysis……)
  • Any (Introduction, usage, source code parsing…)
  • Every (introduction, usage, source code analysis……)
  • Where (introduction, usage, source code analysis……)
  • FirstWhere and singleWhere and lastWhere
  • Join (Introduction, usage, source code analysis……)
  • Take (Introduction, usage, source code analysis……)
  • TakeWhile (Introduction, usage, source code analysis……)
  • … (Too much content)

Chapter 8 use of Functions in Dart Syntax (IV)

  • Function parameters
  • Anonymous functions (closures, lambda)
  • Arrow function
  • Local function
  • Top-level functions and static functions
  • The main function


Chapter 9: Object-oriented Basics for Dart Syntax (5)

  • Property accessor function setters and getters
  • Variables in object orientation
  • The constructor
  • Abstract methods, abstract classes, and interfaces
  • The class function


Chapter 10 object-oriented Inheritance and Mixins in Dart Syntax (6)

  • Class single inheritance
  • Multiple inheritance based on Mixins


Dart Syntax: Type System and Generics (7)

  • Optional type
  • The interface type
  • The generic
  • Type externalization


Chapter 12 Widgets in Flutter

  • The Flutter page – Basic Widget
  • Widget
  • StatelessWidget
  • Stateful Widget
  • State lifecycle
  • Based on the widget
  • Text display


Due to space limitation, some screenshots of the content are shown. If you need these documents, you can support me by clicking “like” and then[Click here]Get it free.

The last

I hope this information can be helpful and a reference direction for those who want to learn about Flutter and get started quickly.

A journey of a thousand miles begins with a single step. May you and I encourage each other.