Flutter教程(一) Flutter简介

57,269

本篇为Flutter教程系列第一篇,先整体介绍一下Flutter,旨在让您对Flutter有一个全局感性的认识。如果您还想了解更多,可以去[Flutter中文网](https://flutterchina.club/) 了解更多。后续教程将陆续发布,如果您对Flutter感兴趣,欢迎关注我的博客。

Flutter是什么?

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。简单来说,Flutter是一款移动应用程序SDK,包含框架、控件和一些工具,可以用一套代码同时构建Android和iOS应用,并且性能可以达到原生应用一样的性能。详情请参考Flutter简介

Flutter和React-Native、Weex这样的动态化框架有什么不同?

React-Native、Weex核心是通过Javascript开发,执行时需要Javascript解释器,UI是通过原生控件渲染。Flutter与用于构建移动应用程序的其它大多数框架不同,因为Flutter既不使用WebView,也不使用操作系统的原生控件。 相反,Flutter使用自己的高性能渲染引擎来绘制widget。Flutter使用C、C ++、Dart和Skia(2D渲染引擎)构建。在IOS上,Flutter引擎的C/C ++代码使用LLVM编译,任何Dart代码都是AOT编译为本地代码的,Flutter应用程序使用本机指令集运行(不涉及解释器)。而在Android下,Flutter引擎的C/C ++代码是用Android的NDK编译的,任何Dart代码都是AOT编译成本地代码的,Flutter应用程序依然使用本机指令集运行(不涉及解释器)。因此,Flutter能达到原生应用一样的性能。

同时,Flutter提供了一组自己的widget),由Flutter的framework和引擎管理和渲染。您可以浏览Flutter widget目录。之所以不适用原生控件,是因为Flutter希望最终结果是更高质量的,如果Flutter使用原生系统widget,Flutter应用的质量和性能将受到这些widget本身质量的限制。例如,在Android中,有一组硬编码的手势和固定的规则来对它们进行手势冲突消歧。在Flutter中,您可以编写自己的手势识别器,该手势识别器是手势系统中的一级参与者 。此外,由不同人撰写的两个小工具可协调手势冲突消歧。

Flutter用什么语言开发?

Flutter 用Dart作为开发框架和widget的语言,详情请参考为什么Flutter选择使用Dart语言

Dart语言好学吗?

如果你有编程经验,尤其是了解Java或Javascript, 那么你回发现Dart学习起来非常容易,笔者只用了两个小时基本就开始愉快的使用Dart编码了。Flutter中文网编辑了一份可以帮助您快速学习Dart的Dart语言资源列表,希望对你有用。

Flutter支持像webpack一样“热重载”或者Android “instant run”吗?

支持,Flutter支持Hot Reload,通过将更新的源代码文件注入正在运行的Dart VM(虚拟机)中工作。这不仅包括添加新类,还包括向现有类添加方法和字段,以及更改现有函数。详情请参阅Flutter热重载

对于程序员/开发人员来说,要使用Flutter必须具备哪些经验?

Flutter对熟悉面向对象概念(类、方法、变量等)和命令式编程概念(循环、条件等)的程序员来说是很容易入门的。学习和使用Flutter,无需事先具有移动开发经验。 我们已经看到了一些不怎么有编程经验的人学习并使用Flutter进行原型设计和应用程序开发。

可以在我现有的原生应用程序中使用Flutter吗?

可以,您可以在现有的Android或iOS应用中嵌入Flutter。详情请参考原生应用程序中使用Flutter

Flutter支持文件读取、发起网络请求吗?

支持!详情请参考:

  1. Flutter 文件操作
  2. Flutter发起Http请求

我在哪里可以获得Flutter学习资源?

您可以去谷歌Flutter官网,但是,现在也可以访问Flutter中文网了,Flutter中文网 上提供了官方文档翻译和一些其它案例、资源,您也可以去Github 上Flutter项目主页,去查看最新动态和提issue.

本文参考文档:Flutter中文网-Flutter FAQ .