Flutter 简介
Flutter是谷歌开发的一套跨平台、开源的UI框架,同时支持iOS、Android系统的开发。最近还推出对web端的支持。
1、优势
-
跨平台,一套代码支持多端的UI开发,节省开发、测试成本。
-
拥有自己的渲染引擎,不需要webView模式,支持自绘UI+原生系统实现流畅的UI效果
-
开发过程中支持热重载,提高开发效率。
2、架构
Flutter框架分三层 Framework,Engine,Embedder
人狠话不多,先上图

-
Framework
ramework使用dart语言实现,包括UI,文本,图片,按钮等Widgets,渲染,动画,手势等。对应的是Flutter中的dart:ui包
对应的是Flutter中的
dart:ui包Rendering层,这一层是一个抽象的布局层,它依赖于dart UI层,Rendering层会构建一个UI树,当UI树有变化时,会计算出有变化的部分,然后更新UI树,最终将UI树绘制到屏幕上。
Widgets层是Flutter提供的的一套基础组件库,在基础组件库之上,Flutter还提供了 Material 和Cupertino两种视觉风格的组件库。而我们Flutter开发的大多数场景,只是和这两层打交道。
-
Embedder
纯 C++实现的 SDK,其中包括了 Skia引擎、Dart运行时、文字排版引擎等。在代码调用
dart:ui库时,调用最终会走到Engine层,然后实现真正的绘制逻辑。Skia:2D渲染引擎
Dart:Dart运行时
Text:文字排版引擎
-
Engine
Embedder是一个嵌入层,通过该层把Flutter嵌入到各个平台上去,Embedder的主要工作包括渲染Surface设置, 线程设置,以及插件等。平台(如iOS)只是提供一个画布,剩余的所有渲染相关的逻辑都在Flutter内部,这就使得它具有了很好的跨端一致性。
3、环境搭建
安装教程在 Flutter中文网 有详细步骤,这里就简单介绍下Mac下安装
1、下载FlutterSDK,解压到要存放的目录,例如:/Users/xxxxx/Documents/
2、配置镜像需要在Mac根目录的.bash_profile添加,PATH是SDK解压的路径
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Users/xxxxx/Documents/flutter/bin:$PATH
3、设置完成,保存关闭文件
4、打开终端
$ source .bash_profile
$ flutter doctor
5、检测环境,这里可能出现大量的错误,iOS环境、安卓环境等等可以去看解决方案