为什么原生应用开发者需要关注Flutter(2)

我们为文本框和下拉列表添加监听器,当发生事件变更时,在“全局状态”里更新这些值,并让Flutter进行UI重绘。Flutter将自动更新文本标签的值。

4. 一切都是部件(widget)

在Android和iOS上,部件所对应的就是各种View类。

Flutter采用了不同的概念,部件不仅仅是结构化的元素。Flutter的部件架构更多地使用了组合,而不是继承,所以部件架构更加强大和灵活。Flutter官方文档写道:

部件可以用于定义结构化元素(如按钮或菜单)、样式元素(如字体或颜色)、布局(如空白填充)等。

在Flutter里,行为也是部件(如GestureDetector)。InheritedWidget可用于进行状态管理,AnimatedWidget可用于构建动画。

遵循组合大于集成的原则,Flutter从简单的元部件开始,可以构建出非常复杂的部件。Flutter的Container Widget就是由一系列元部件组成的。

为什么原生应用开发者需要关注Flutter

5. 和Activity生命周期管理说再见

我想没有人会喜欢把时间花在Activity(或Fragment、ViewController)的生命周期管理上。对于我来说,Activity中Fragment的异步数据加载和本地状态管理是一个很大的负担。

但在Flutter里,这些东西都消失了。

6. 稳定的60帧频

Flutter的应用被编译成本地代码,所以性能方面不存在问题。事实上,我认为它比Java或Swift更适合用来开发游戏应用。使用反应式编程风格开发的UI代码更加清晰,再加上良好的性能,非常适合用来开发游戏。

来自谷歌的@wmleler1写了一篇文章解释为什么Flutter的渲染速度会这么快:https://hackernoon.com/whats-revolutionary-about-flutter-946915b09514

为了体验Flutter的速度,可以试着安装这款Flutter图库应用:https://play.google.com/store/apps/details?id=io.flutter.gallery。

iOS版的需要自己从源代码构建:https://github.com/flutter/flutter/tree/master/examples/flutter_gallery

7. 同时支持Android和iOS

这个就不用多说了。

8. Flutter社区

Flutter处于alpha阶段,不过社区已经为它提供很好的支持。Flutter gitter channel为新手和有经验的开发者提供了交流渠道,很多问题可以在这里得到快速解答。

Flutter还很年轻,所以肯定会存在一些局限和已知问题,而且未知的问题也会越来越多。Flutter开发团队正努力解决这些问题。下面列出了几个已知问题:

查看原文Why native app developers should take a serious look at Flutter

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9b91c682d4a1a4883bec806a9e8e4d87.html