汇聚闲鱼在跨端改造开发中沉淀的企业级实践经验和技术总结。
从解决具体的实际应用开发问题出发,给广大读者提供了一张Flutter全景视图。
详解如何低成本实现Flutter富文本、设计一个高准确率的Flutter埋点框架、Flutter外接纹理、可定制化的Flutter相册组件等实战内容。
本书将详细讲解闲鱼Flutter&FaaS云端一体化架构,以及闲鱼基于Flutter的架构演进与创新,学习一套全面的Flutter架构应用方案。本书介绍闲鱼技术团队利用Flutter技术改造和上线复杂业务的混合工程改造实践,抽取Flutter依赖到远程的实现细节,以及使用Plugin桥接获取设备信息、使用基础网络库等混合开发实践指南。这些实践遍布闲鱼各大业务线和应用场景,为读者使用Flutter打造自己的研发体系探索一条实践之路。除了介绍闲鱼Flutter应用框架Fish Redux、开发利器AspectD、FlutterBoost等一众开源工具与开发实践指南,你还将在本书中学到Flutter的更多应用场景。
第1章 混合工程 1
1.1 Flutter工程体系 1
1.1.1 混合工程研发体系介绍 1
1.1.2 混合工程下的Flutter研发结构 2
1.1.3 工程结构 2
1.1.4 构建优化 3
1.1.5 Native启动下的Flutter调试 6
1.1.6 Native启动下的Flutter热重载 9
1.1.7 Native与Flutter联合调试 11
1.1.8 持续集成 11
1.2 混合工程改造实践 11
1.2.1 项目背景及问题 11
1.2.2 改造目标 12
1.2.3 方案的制订 12
1.2.4 改造的实现过程 14
1.3 混合工程与持续集成 15
1.3.1 背景思考 15
1.3.2 实现方法 16
1.3.3 iOS依赖的Flutter库的抽取 21
1.3.4 Flutter混合工程的持续集成流程 23
1.4 快速完成混合工程搭建 24
1.4.1 flutter-boot简介 24
1.4.2 工程化设计 25
1.4.3 混合栈 27
1.5 使用混合栈框架开发 29
1.5.1 为什么需要混合方案 29
1.5.2 Google官方提出的混合方案 29
1.5.3 第二代混合技术方案 FlutterBoost 31
1.5.4 扩展补充 35
第2章 能力增强 36
2.1 基于原生能力的插件扩展 36
2.1.1 Flutter Plugin 36
2.1.2 Platform Channel 37
2.1.3 获取剩余电量Plugin 39
2.1.4 加载Plugin 46
2.1.5 遇到的问题 48
2.1.6 延展讨论 49
2.2 基于外接纹理的同层渲染 50
2.2.1 Flutter渲染框架 50
2.2.2 存在的问题 51
2.2.3 解决方法 52
2.3 多媒体能力扩展实践 58
2.3.1 背景 58
2.3.2 设计思路 58
2.3.3 一些难点 59
2.3.4 总结 60
2.4 富文本能力应用实践 61
2.4.1 富文本的原理 61
2.4.2 设计思路 62
2.4.3 关键部分代码实现 64
2.4.4 效果 65
第3章 业务架构设计 66
3.1 应用框架设计实践 66
3.1.1 Fish Redux开源背景及技术架构 66
3.1.2 Fish Redux技术解析 67
3.2 轻量级动态化渲染引擎的设计 77
3.2.1 背景 77
3.2.2 动态方案 77
3.2.3 模板编译 78
3.2.4 渲染引擎 81
3.2.5 最终效果 85
3.3 面向切面编程的设计实践 86
3.3.1 典型的AOP场景 88
3.3.2 面向开发者的API设计 88
3.3.3 AOP代码的编译 90
3.3.4 Dill操作 90
3.3.5 AspectD支持的语法 92
3.3.6 构建流程支持 95
3.3.7 实战与思考 95
3.4 高性能的动态模板渲染实践 96
3.4.1 为什么Native可行的方案不适用于Flutter 96
3.4.2 认识三棵树 97
3.4.3 Flutter在Layout过程中的优化 98
3.4.4 如何自定义Widget 100
3.4.5 更多优化方向 105
参考文献 106
第4章 数据统计与性能 107
4.1 数据统计框架的设计 107
4.1.1 用户行为埋点定义 107
4.1.2 在Flutter上的埋点实现方案 108
4.1.3 曝光坑位 110
4.2 性能稳定性监控方案的设计 113
4.2.1 Flutter性能稳定性目标 113
4.2.2 页面滑动流畅度 113
4.2.3 页面加载耗时 116
4.2.4 异常率 118
4.3 高可用框架的设计与实践 119
4.3.1 为什么要做Flutter性能监控 119
4.3.2 需要一个什么样的SDK 119
4.3.3 从单个指标看整体设计 120
4.3.4 整体结构设计 122
4.3.5 SDK不同的使用方式 126
4.3.6 SDK的落地情况 126
4.4 跨端方案性能对比实践 127
4.4.1 跨端方案对比 127
4.4.2 对比数据分析 128
4.4.3 总结 131
4.4.4 延伸阅读 131
第5章 企业级应用实战 134
5.1 基于Flutter的端架构演进与创新 134
5.1.1 Flutter的优势与挑战 134
5.1.2 闲鱼的架构演进与创新 135
5.1.3 研发智能化在闲鱼的应用 140
5.2 Flutter 与 FaaS 云端一体化架构 142
5.2.1 传统Native+Web+服务端混合开发的挑战 142
5.2.2 跨端方案Flutter与React Native的选择 143
5.2.3 Dart作为FaaS层的第一可选语言 144
5.2.4 一体化的深层思考 146
5.2.5 案例效果 147