极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:02
登录|注册

蚂蚁财富Flutter工程化实践

讲述:初明明大小:4.60M时长:05:02
Flutter 是谷歌开发的一套全新的跨平台开源 UI 框架,目前已支持 iOS、Android 和 Web 应用的开发,对于 Desktop 的支持也在进行中。Flutter 以其便捷快速的开发体验、灵活优雅的布局方式和媲美原生的性能为移动开发带来了新的活力。
但是, Flutter 在业务生态内的落地以及多团队间的协作方面,目前还没有很好的实践。就此 InfoQ 采访了蚂蚁金服无线开发专家肖凯,了解到了蚂蚁金服在 Flutter 工程化方面的实践。
首先,肖凯分享了蚂蚁金服之所以选择 Flutter 的原因,主要是因为 Flutter 能够解决其他方案无法跨越的性能和兼容等问题。
肖凯表示,跨平台是移动开发不断追求的目标。Web 本身是很理想的方案,有很多业界前辈都曾信心满满地使用 Web 作为主技术栈,但由于性能等问题最后也都败下阵来。后来又出现了 RN 等端渲染方案,但又引入了兼容性等新问题,某些大厂在实践后发现,使用 RN 类的方案,开发成本从 2 端变成了 3 端,于是又开始去 RN 化……这时候谷歌推出了自己的跨平台 UI 框架 Flutter,思路源于精简浏览器,从技术方案上解决了其他方案无法跨越的性能和兼容等问题。底层方案优秀再加上谷歌在社区的影响力,Flutter 就成了移动开发人员无法忽视的存在。
但是,Flutter 也有以下几个缺点。
热修复。国内技术圈对热修复的偏执可能会是业务使用 Flutter 的最大障碍。
语言和生态。Dart 语言由谷歌主导开发,于 2011 年 10 月公开,不算新语言,但对大多数开发者而言还是陌生的。
体积。接入 Flutter 会增加 App 体积:iOS 双架构( arm64 和 armv7)15M 左右,Android 单架构约 7M,包的体积对于大厂而言又是选择的条件之一。
版本迭代。目前 Flutter 还处于快速迭代的时期,官方 Release 很快,经常出现发布 Stable 后很快又推出 Hotfix 版本的情况,这就要求技术团队对于新技术要有很强的判断力。
另外,从商业政策上看,苹果公司对 Flutter 的态度不明确。近期出现了苹果检测二进制包中含有小程序关键字并拒审的情况,Flutter 技术上对于动态化并无限制。不过谷歌官方最新的 Roadmap 中已经移除了动态化支持的内容,从官方的态度上来看,目前是乐观的,使用 Flutter 的技术团队可以持续关注下。
在决定选择 Flutter 之后,蚂蚁财富⽆线团队落地 Flutter 的过程中也遇到过困难,肖凯主要分享了 6 点,及其解决方案。
混合栈。Flutter 官方推荐的标准使用方式是作为独立应用的 UI 框架。然而对于流量垄断的国内市场来说,面临更多的是混合应用场景,最终蚂蚁财富使用了闲鱼的 FlutterBoost 混合栈方案取得了不错的效果。
路由。在成熟 App 中接入 Flutter 对于路由方案会有很强的入侵。最后蚂蚁财富通过 Flutter 反向代理路由的方式实现了无侵入的 Flutter 路由方案。
内存。Flutter 在 iOS 上内存表现并不是很好,最终蚂蚁财富通过复用 engine,修复 engine 自身内存泄露的方式解决了。
工作流。蚂蚁内部业务团队庞杂,多业务方合作是常态。蚂蚁财富抽象了工作流 CLI,达到了在 Flutter 上业务隔离,协同开发的目的。
构建。Flutter 自身的构建和传统端开发格格不入。最终蚂蚁财富在 iOS 上选择了 BuildPhase,在 Android 上 Hook 了 Gradle 的构建过程与已有构建系统进行了集成。
业务埋点。Flutter 生命周期和原生应用有些区别,导致某些业务埋点表现与 native 异常。蚂蚁财富通过定制生命周期的方式与原生应用保持了协同。
此外,对于 Flutter 的未来发展趋势以及蚂蚁财富在 Flutter 实践中的下一步计划,肖凯也作了回应。
他坦言, 考虑到谷歌未来要推出的 Fuchsia,且 Flutter 是该平台上的标准 UIKit,如果 Fuchsia 能获得商业上的成功,Flutter 无疑会站上移动开发舞台的中央。
在未来 Flutter 除了和传统移动开发技术在手机端持续竞争,还会在新兴小终端应用上深入探索,并且谷歌对 Flutter 的期望就是打造全平台 UI 工具包,随着对 Flutter 挖掘的深入和 5G 时代的来临,可能小终端会成为移动开发新的战场,Flutter 会带来强大的活力。
而蚂蚁财富将会在 Flutter 工程化方面进一步拓展能力,可能的话会输出到社区,为 Flutter 在国内的推广尽一份力。
以上就是今天的内容,希望对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
55
沉浸
阅读
分享
手机端
快捷键
回顶部