Flutter 入坑半年的一点感受

年初组里立了一个新项目,预算紧、工期紧,老板拍板用 Flutter。作为一个只写过原生的人,半年下来有了一些体感,写下来给同样背景的朋友参考。 先说好的。 开发效率是真的高,热重载这个体验一旦用上就回不去。UI 还原度也不错,设计师给的稿子基本一比一还原,而且 iOS / Android 两端的差异比我想象中小。我们一个三人小组,半年做了两个业务模块 + 一套通用组件库,换原生至少要五个人。 再说别扭的。 混合工程的路由和生命周期管理是重灾区。我们用 flutter_boost 做混合栈,内存占用比纯原生页面高不少,低端机上页面切换能感觉到掉帧。官方对混合开发的支持一直不算稳定,升级 Flutter 版本的时候 flutter_boost 兼容性经常掉链子。 Dart 语言本身没毛病,但生态里的包质量参差不齐。有个下拉刷新的库,作者弃坑半年,issue 堆了几百个没人回,最后我们自己 fork 修的。 崩溃排查体验比原生差。符号表一多,Crash 堆栈经常对不上,需要自己维护一套符号映射的流程,这块我们还在摸索。 我的整体判断:新项目、纯 UI 展示型页面,Flutter 是划算的;但如果是重交互、深度依赖系统能力的 App,混合开发的复杂度会吃掉你在开发效率上省下来的时间。 下半年项目主体功能交付了,我大概率会回去继续搞 iOS 组件化的收尾。Flutter 的知识先放着,看它后续发展吧。个人感觉跨端这个方向,五年内不会有终局,工具会一直换,但"用一套代码换两端"的需求是永恒的。

2020-07-14 · 芮靖安