我们为文本框和下拉列表添加监听器,当发生事件变更时,在“全局状态”里更新这些值,并让Flutter进行UI重绘。Flutter将自动更新文本标签的值。
4. 一切都是部件(widget)
在Android和iOS上,部件所对应的就是各种View类。
Flutter采用了不同的概念,部件不仅仅是结构化的元素。Flutter的部件架构更多地使用了组合,而不是继承,所以部件架构更加强大和灵活。Flutter官方文档写道:
部件可以用于定义结构化元素(如按钮或菜单)、样式元素(如字体或颜色)、布局(如空白填充)等。在Flutter里,行为也是部件(如GestureDetector)。InheritedWidget可用于进行状态管理,AnimatedWidget可用于构建动画。
遵循组合大于集成的原则,Flutter从简单的元部件开始,可以构建出非常复杂的部件。Flutter的Container Widget就是由一系列元部件组成的。
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