Flutter初探

Fluter是Google开发的一款跨平台的移动端开发框架,目前支持iOS和Android端,2018年末推出了Release版本1.0.0。

Flutter拥有现代前端开发的很多特性,Hot Reload、AOT编译,声明式UI语法,最重量级的是跨平台开发,真正做到了一次编写,到处运行,Flutter采用了与React Native和Weex不一样的解决方案,Flutter的页面渲染没有采用原生组件,而是使用Skia自主绘制,可以想象Flutter编写的应用就像是在播放Flash动画一样,对原生平台没有依赖,这使得Flutter在设计上可以立足于所有前端开发,未来有可能成为移动端,PC端和Web端的通用开发语言。

Material design也是非常好看

但是Flutter目前仍然存在些许缺陷,现在已经是Release 1.0了,Github上的4000个issue还是让人有点望而生畏,Flutter的审核感觉挺严格的,我跑demo的时候遇到了一个Android SDK的问题,提了一个issue,不到一个小时就标记为Duplicate给关了,所以现在未关闭的issue数可能真实的反映出Flutter离成熟的商业开发还有一些距离。

跑完Demo后略有一点小失望,官方Demo在S6 edge +上运行十分流畅,而在6S上切换页面和加载动画时会有掉帧,让我感觉是在iOS系统上安装了一个国产Android应用,可能是Flutter的页面渲染用不是的原生组件,或者Google没有针对Flutter在iOS上做优化,导致在较老的iOS设备上体验不好,对于iOS原生应用,就算设备再老,动画和页面也只是加载的时间长一些而已,体验上是平滑流畅的,很少会出现掉帧的情况。

布局嵌套也略微有点恶心,一层层的括弧反括弧,但是写习惯了也不错,何况还支持宇宙最好用的IDE我大VS Code,相比iOS下的可视化界面和自动布局,这种声明式的UI语法能更好的支持代码复用和团队协作。

已经准备入坑了,虽然现在的Flutter还不成熟,但是我仍然看好它,并相信其走在正确的道路上,Native开发是当下,跨平台开发是未来,我们处在未来与当下之间,希望Flutter能变得越来越好,一统大前端的江湖。