This is the first part of a series of Tutorials on Flutter. It gives you an overview of the overall nature of Flutter. If you want to know more, can go to [Flutter Chinese] (https://flutterchina.club/) to learn more. Further tutorials will be published, but if you are interested in Flutter, please follow my blog.

What is Flutter?

The Flutter is Google’s mobile UI framework for quickly building high quality native user interfaces on iOS and Android. Flutter works with existing code. Flutter is being used by more and more developers and organizations around the world, and Flutter is completely free and open source. In short, Flutter is a mobile application SDK that includes frameworks, controls, and tools to build Android and iOS applications with a single set of code that can perform as well as native applications. Please refer to the brochure of Flutter for details.

What is the difference between Flutter and dynamic frameworks like React-Native and Weex?

React-native and Weex cores are developed through Javascript, which requires Javascript interpreter when executing, and the UI is rendered through Native controls. Flutter differs from most other frameworks for building mobile applications because it uses neither a WebView nor native controls of the operating system. Instead, Flutter uses its own high-performance rendering engine to draw widgets. The Flutter is built using C, C ++, Dart, and Skia (2D rendering engine). On IOS, the C/C ++ code of the Flutter engine is compiled using LLVM, any Dart code is aoT-compiled to native code, and the Flutter application is run using the native instruction set (no interpreter is involved). On Android, the C/C ++ code of the Flutter engine is compiled with Android’s NDK, any Dart code is AOT-compiled with local code, and the Flutter application still runs with the native instruction set (no interpreter involved). As a result, the Flutter can achieve the same performance as a native application.

Also, Flutter provides a set of widgets of its own, which are managed and rendered by the Flutter framework and engine. You can browse the catalog of Flutter widgets. The reason for not applying native controls is that Flutter wants the end result to be of higher quality, and if Flutter uses native system widgets, the quality and performance of the application will be limited by the quality of those widgets themselves. In Android, for example, there is a set of hard-coded gestures and fixed rules to disambiguate them. In Flutter, you can write your own gesture recognizer, which is a level 1 participant in the gesture system. In addition, two gadgets written by different people coordinate gesture conflict disambiguation.

In what language was Flutter developed?

Flutter uses Dart as the language for its development framework and widgets. For more details, see why Flutter chose to use Dart.

Is Dart easy to learn?

If you have programming experience, especially if you know Java or Javascript, you’ll find Dart easy to learn. I was pretty happy with Dart coding in about two hours. We have compiled a list of Dart language resources that can help you learn Dart quickly.

Does Flutter support “hot overloading” like WebPack or Android “instant run”?

Support, Flutter supports Hot Reload and works by injecting updated source code files into the running Dart VM. This includes not only adding new classes, but also adding methods and fields to existing classes, and changing existing functions. See The Flutter thermal Overload for details.

What experience must a programmer/developer have to use Flutter?

Flutter is an easy introduction for programmers familiar with object-oriented concepts (classes, methods, variables, etc.) and imperative programming concepts (loops, conditions, etc.). No prior mobile development experience is required to learn and use Flutter. We’ve seen people with little programming experience learn and use Flutter for prototyping and application development.

Can I use Flutter in my existing native application?

Yes, you can embed Flutter in an existing Android or iOS app. See using Flutter in native applications for details.

Does Flutter support file reading, making network requests?

Support! Please refer to:

  1. Flutter file operation.
  2. The Flutter initiates an Http request.

Where can I get resources to study Flutter?

You can go to The Google Flutter website, but now you can also visit the Chinese Website of The Flutter, which provides translations of official texts and other cases and resources. You can also go to the Github project home page to check out the latest updates and issues.

Reference document for this article: Flutter Chinese Website – FAQ.