Image Description

Flutter是谷歌基于Dart语言开发的移动应用开发框架,在保持原生性能的条件下实现了跨端编程。

iOS 工程师表示 Flutter真香,App手感接近 iOS原生效果,一份代码写完直接双端运行。我见过 ReactNative 和 C# Xamarin 写的跨平台App,质量和平台原生写的相差很大,提不起学的兴趣。

经过实际项目开发,Flutter 应该是最适合移动端跨平台开发的选择。

Flutter 框架架构

Image

Framework是 Flutter基础库,用纯 Dart实现的 SDK。

最下面两层 Foundation、Animation、Painting、Gesture是一个 UI层,对应 Flutter里的 dart.ui包,提供了动画、手势和绘制能力。

Rendering层是抽象的布局层,依赖于下面的 dart UI层。Rendering层会构建 UI数,当 UI数有变化的时候,计算出有变化的部分,然后更新 UI 数并绘制在屏幕上。

Widget层是 Flutter提供的一套基础组件库,基础组件库之上还提供了 Material和 Cupertino两种视觉风格的组件库。

最下面的 Engine是纯 C++实现的,包括了 Skia引擎,最终 UI在这里绘制。