Flutter 简介

211 阅读2分钟

Flutter 简介

Flutter是谷歌开发的一套跨平台、开源的UI框架,同时支持iOS、Android系统的开发。最近还推出对web端的支持。

1、优势

  • 跨平台,一套代码支持多端的UI开发,节省开发、测试成本。

  • 拥有自己的渲染引擎,不需要webView模式,支持自绘UI+原生系统实现流畅的UI效果

  • 开发过程中支持热重载,提高开发效率。

2、架构

Flutter框架分三层 FrameworkEngineEmbedder

人狠话不多,先上图

v2-332124a314d1bf933d33844252ea2300_r

  • 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环境、安卓环境等等可以去看解决方案

相关链接:

api.flutter.dev/