[GDG] 关于 Flutter 的一些小事

sddtc 于 2019-04-21 发布

Flutter是一个新的用于构建跨平台手机App的SDK。

手机原生APP

优势
最佳原生用户体验
我们需要做的事
选择一个阵营 (iOS or Andriod)
学习掌握一门语言

然而,来自 “两个阵营” 的开发者渐渐发现:

我们开始意识到采用良好的移动跨平台解决方案的好处

跨平台UI框架方案

代表: 基于WebView的Cordova框架

优势
跨平台
现代web开发成果: 控件库,自动化测试工具..
web开发技术栈
不足
UI渲染效率 & 执行效率
厂商定制与兼容性问题导致难以达到一致体验
原生功能(手势,蓝牙,摄像头..) 需要用原生代码实现

响应式视图框架

代表: React Native

优势
将UI渲染交还给系统, 加快响应速度
web技术 HTML+JS
不足
和系统的控件集强耦合
可能需要处理不同系统的差异导致跨平台特性打折扣

我们渐渐发现,一款APP之所以能够成功,需要包含以下特点:

Flutter 出现了 使用 Dart 作为开发语言, 它唯一提供响应式视图而不需要 JavaScript 桥接器的移动 SDK

Flutter 革命

渲染库

在Flutter界面渲染过程分为三个阶段:布局、绘制、合成, 布局和绘制在Flutter框架中完成,合成则交由引擎负责

控件库

Flutter的控件库提供了非常丰富的控件,包括最基本的文本、图片、容器、输入框和动画等等. 
在Flutter中”一切皆是控件”,通过组合、嵌套不同类型的控件,就可以构建出任意功能、任意复杂度的界面

Flutter 2019 发展路线