Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
最开始的跨平台开发的方案就是H5开发,然后基于Android和iOS的webView完全继承web开发的所有成果,但是由于webview的渲染效率和js的执行性能问题,很难与原生相提并论。然后就到了react native、weex的时代,为了解决webview性能差的问题,这类框架将最终的渲染工作交还给了系统,抛开react native和weex自身对系统版本的bug,性能问题依然没有完美的解决,比如加载react native生成的bundle.js的size过大、bundle.js的加载时间过长导致白屏、页面内手势滑动导致大量的丢帧问题等等,所以我们在适用reactnative时还是需要大量的优化和维护。这个时候flutter借鉴react native孕育而生,为什么是借鉴呢,上面也有提到,其实react native在开发时有很多思想都是相同的。
flutter所使用的语言是Dart,这种语言既支持动态编译又支持静态编译,这也就意味着在JIT模式下我们可以实现热刷新,就像开发js一样,编辑完代码之后,只要保存或者点击 Hot Reload按钮,就可以立即更新到设备上,不用重新编译app。在Flutter中,所有功能都可以通过组合多个Widget来实现,包括对齐方式、按行排列、按列排列、网格排列甚至事件处理等等。Flutter控件主要分为两大类,StatelessWidget和StatefulWidget,StatelessWidget用来展示静态的文本或者图片,如果控件需要根据外部数据或者用户操作来改变的话,就需要使用StatefulWidget。State的概念也是来源于Facebook的流行Web框架React,React风格的框架中使用控件树和各自的状态来构建界面,当某个控件的状态发生变化时由框架负责对比前后状态差异并且采取最小代价来更新渲染结果。
结构图如下:
Flutter的优点
- 跨平台的优点不必多说
- Flutter默认Meteria UI,开发起来贼溜
- hot reload的开发模式非常方便,基本上做到实时查看改变的UI
- 将来发布的 Fuchsia OS 就钦定了 Flutter 作为 UI Toolkit
- 从性能上来讲,Flutter是加分的。
其实和RN思想是近乎相近,只是语法不同,两者都是跨平台,效率上讲都是很高的。
Flutter的缺点
- 使用Dart开发容易造火箭
来源:freebuf.com 2021-03-11 15:18:30 by: 华纳云Yoke
请登录后发表评论
注册