1460000016930077?w=750&h=400

Flutter背景

Flutter: Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量的原生应用的全新移动 UI 框架。并在2018年2月的世界移动大会上发布Flutter的第一个bata版本。

到目前为止Flutter的版本几乎每天都在更新,并从GitHub上我们看到Flutter已经不仅支持iOS or Android这两端了,而且也支持了macos,Linux、Windows这些平台。

目标

为了解决移动开发中的两个重要问题:其一是实现原生应用的性能和与平台的集成,其二是提供一个多平台,
可移植的 UI 工具包来支持高效的应用开发,write once, run erveryWhere!

现状

当下,已经有很多跨平台的解决方案,例如之前基于WebView的Cordova等,
还有现在常用的hybrid混合开发模式渲染成原生控件的React Native、Weex等。

但是,hybrid模式方案是采用HTML+js+css的UI构建逻辑,但是最终会生成对应的自定义原生控件,
将框架和App开发者绑在了系统的控件系统上,不仅框架本身需要处理大量平台相关的逻辑,
随着系统版本变化和API的变化,开发人员还可能也需要处理不同平台的差异。

优势

Flutter则开辟了一种全新的思路,从头到尾重写一套跨平台的UI框架,包括UI控件、渲染逻辑甚至开发语言。
渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性;
逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript高得多;(Dart同系列三...)

我们常用的VS code idea也集成了Flutter的工具包,也提升了开发效率。

缺点

Flutter的缺点就是还处于早期阶段,我们看到Google团队6小时前还在提交代码,也一直为之努力。
当然开发Flutter应该也只能使用Dart语言,而Dart语言也是面向对象的,也很容易上手。
况且,学习一种新的语言,很有成就感,不是吗?!

Flutter的初衷就是追求高性能的UI交互效果的场景,针对Android平台,而且可以实现动态化部署,
而iOS由于Apple的限制,在iOS上实现动态化部署有一定难度。

Cymiran
1.2k 声望134 粉丝

跨越七海的风...