Aireport(iOS原生)swift
Aireport本来是我本身在用, 可是在初步学习了Flutter后我决定用Flutter最大限度的去模仿iOS原生版的应用, 以评估Flutter是否有能力作到以假乱真的地步. 咱们在上一篇文章中已经探讨了Flutter在开发中可能遇到的问题, 这篇文章咱们将着重放在二者用户在实际体验中的差距.框架
安装包大小决定了用户等待下载的时间和可能会耗费的流量, 即使是即将迈入5G时代的今天, 咱们依然须要尽可能优化应用安装的大小.post
Flutter应用安装包和安装后容量 性能
上面的应用容量除了影响磁盘占用外, 对启动速度也会有影响. 我在iPhone X上实测了一下, iOS原生应用的冷启动速度大概是在0.4秒左右, 而Flutter的冷启动速度在1.5秒左右. 学习
内存占用一直是移动开发中的一个优化重点.不过目前来看Release版的Flutter在内存占用这一块也没有任何优点, SDK拖累是一方面, 单个页面内存占用也比原生多一倍. 优化
内存占用不只影响着应用性能、电池损耗、 程序稳定性, 最重要可是, 内存占用越大, 被系统干掉后台的可能性就越大. 我本身的使用体验来看, iOS原生的Aireport基本上大部分时间都处于休眠状态, 而Flutter会在关闭不久后直接被系统干掉.ui
从框架一出现,60FPS彷佛始终贯穿于各大Flutter的介绍和分析文章中, 这让咱们对Flutter的流畅度很是期待.然而:code
这种帧率的差距也体如今了实际使用中. 不管是页面的切换, 仍是ListView的滚动, Flutter都仅仅能达到还算流畅的程度, 但明显还达不到iOS原生60帧的丝般顺滑. 固然, 目前的Flutter还处在Beta版, 并且我我的认为, 相对于安装包大小和启动速度, 运行时的流畅度更容易进行优化. 我相信Flutter将在以后的版本中进一步优化应用的流畅度, 达到与原生媲美的程度.cdn
iOS应用开发受益于强大的iOS系统和丰富的生态体系, 天生就具备大量实用且不可替代的特性, 例如Bitcode可以在云端自动优化咱们App的代码, 原生应用默认就支持增量更新、后台应用刷新等等.
综合了目前Flutter在开发中的体验以及和原生应用的比较, 我目前对Flutter的评估结果是: 再等等.
Flutter的确提供了一种不一样于目前其余跨平台开发框架的思路, 也极有可能成为将来跨平台开发的标杆. 若是你是我的开发, 我仍是建议你学习一下Flutter, 它的Dart语言、Wiget化、数据绑定、单向数据流等等现代特性值得你去了解. 同时对于没法同时掌握多个移动开发平台的小伙伴而言, 使用Flutter也是一种成本较为低廉的方法. 可是对于公司而言, Flutter还没法彻底投入生产环境, 并且初期Flutter的开发成本未必会低于原平生台.
目前Fuchsia的开发进度还不得而知, Flutter也还处在Beta3阶段. 相信等Fuchsia正式发布的时候才是检验Flutter正在实力的时候.