Flutter 实战

会议室:新阁A
出品人:于佳(宗心)

Flutter 作为革命性的跨终端解决方案,一经推出就获得了广泛关注。新的一年,... 展开 >

专题出品人:于佳(宗心)

阿里巴巴闲鱼技术团队客户端负责人

于佳,花名宗心,闲鱼技术团队客户端负责人。2012年应届毕业加入阿里巴巴,经历集团无线化转型的重要时期,参与过集团多款重量级App以及移动中间件的设计与开发,多年客户端老兵。2014年参与了手机淘宝的iOS客户端的架构升级,该架构首次完成了对百人团队并行开发的支持,同年主导了手机天猫客户端基础架构以及交易链路向手淘架构的归一,为手机淘宝作为未来集团无线中台奠定了坚实的基础。2015年加入闲鱼客户端团队负责端架构和团队建设,工作期间完成了基于Flutter混合架构的闲鱼客户端的整体架构设计,在工程体系上完善了针对Flutter的持续集成以及高可用体系的支撑,同时推进了闲鱼主链路业务的Flutter化。未来将持续关注终端技术的演变及发展趋势。

地点:新阁A

专题:Flutter 实战

Flutter 作为革命性的跨终端解决方案,一经推出就获得了广泛关注。新的一年,Flutter 在原有的工程效率和体验侧有什么新的变化?在业务对用户增长和游戏化诉求强烈的今天,Flutter 带来的想象力是什么?Flutter 未来的机会和挑战是什么?本专场希望通过一线的实际解决方案,带给大家新的思考和借鉴。

by 张天宇

快手
客户端架构师

耦合是天然存在的,一个 App 解耦的上限就是业务逻辑上的耦合程度。快手 App 承载的各种业务耦合就非常高,开发人数也经历了两年的快速增长。众多开发者合作开发一个业务间紧密相关的 App,带来了协作和迭代方面各种各样的问题,给基础工具和流程的设计带来了极大的挑战。这些挑战不仅存在于 Native 平台上,也同样威胁着 Flutter。本次分享,我们总结了 Native 平台演进过程中暴露的各种问题,介绍了针对 Flutter 的平台特征,落地的一些提升 App 研发质效的工具和标准。

演讲提纲:

1. App 级别平台组的定位思考

  • 减少大规模协作的沟通成本(划分边界,明确接口)
  • 维持产品迭代中的可维护性(面向迭代设计)
  • 维持统一的质量和代码风格(包括基础用户体验,例如包大小等)

2. 大规模协作需要什么样的工程特性

  • Channel 需要进行大量的字符串、类型对应工作(书写易出错,错误被 delay 到运行时)
  • 生成代替手写,杜绝手写失误。编译检查代替运行时错误,提前暴露兼容问题。
  • 基于gRPC 的公用版本
    • 优点:好维护
    • 缺点:重、对现有数据结构不友好
  • 自研纯 Dart 版本
    •  优点:轻量化
    •  缺点:强类型不如 pb
  • 基础能力工具化,支持页面栈的强类型化

3. MethodChannelGen

  • Channel 需要进行大量的字符串、类型对应工作
  • 生成代替手写,杜绝手写失误。编译检查代替运行时错误,提前暴露兼容问题。
  • 基于 gRPC 的公用版本
  • 自研纯 Dart 版本

4. 强类型的页面跳转(天然的业务边界)

  • 原生 Navigator 字符串路由不利于协作(url不可控,入参不明确。需要跨边界沟通,错误被 delay 到运行时)
  • IoC 模式,解决组件化依赖+目前接口
    • 学习 Android 官方 static 方法的方式
    • 暴露变化
    • 封装具体实现
  • 用代码生成支持 Native-Flutter 和 Flutter-Flutter

5. 组件库维护

  • 组件分级制定标准(对开发者提出标准,对使用者明确定位)
    • 有什么级别
    • 为什么分级
      • 稳定性
      • 维护程度
      • 依赖
  • 库内容要求概览(物理结构,对照 Pub 私服的搜索和展示说)
  • 开发流程闭环
    • 创建 —— 模板工具(降低标准本身的学习沟通成本)
      • 通用模板工具(隔离变化,仿照 Flutter create模板)
      • 定制化的模板
  • 开发 —— mr 检查工具(保证后续迭代的质量)
    • 通用模板检查工具,回归构建工具
    • 定制化的模板
  • 发布 —— 基于 Pub 的准入检查(最后兜底,保证对外一致)
    • 定制 pub publish
    • 可配置的检查
  1. 包大小
  • 基于 Pubspec 的依赖分析
  • 可视化展示
  1. 内存泄漏检查
  • Expando 与 GC
  • 使用 vmService 分析泄漏

听众收益:

  1. 了解快手在大规模协作中的坑和解决办法
  2. 了解 Flutter 落地的一些开发效能问题的解法

by 邬吉风

阿里巴巴
技术专家

本次分享将为大家介绍闲鱼在 Flutter 技术应用过程中的演进,面对不同场景问题下的变化和创新,以及围绕 Flutter 打造面向下一代应用研发模型的思考。

演讲提纲:

1. 闲鱼在 Flutter 上的演进

  • 三大阶段的问题定义和思路
  • 工程化,基础设施
  • 规模化,应用框架
  • 一体化,新研发模型的探索

2. 围绕 Flutter 的下一代应用研发模型

  • 为什么选择 Flutter + FaaS
  • 模型角色和架构
  • 协议标准和双端通信
  • 重点案例分享

3. Flutter 动态化问题

  • 领域研发模式——Flutter DX
  • 性能优化

4. Flutter 多媒体引擎和互动游戏引擎

听众收益:

  1. 了解 Flutter 技术的在实践中的优势和挑战
  2. 了解闲鱼在不同场景下的技术变化和创新
  3. 了解闲鱼基于 Flutter 的下一代研发模型演进和思考

by 董尚先

美团点评
技术专家

Flutter 跨端技术一经推出便在业内赢得了不错的口碑,其在“多端一致”和“渲染性能”上的优势让其他跨端方案难以望其项背。Flutter 的成长曲线和未来前景都很优秀,但不可否认的是目前 Flutter 仍在发展中阶段,距离主流公司在全线 App 毫无顾虑的接入还存在一定距离。 这其中的顾虑主要是包大小与动态化。

动态化代表着更短的需求上线路径,代表着大大缩短原始包大小获得更高的用户下载意向,也代表着更健全的线上质量维护体系。当明白这些意义后也就不难理解,在 Flutter 的应用与适配趋近完善时,动态化自然就成为了一个无法避开的话题。 RN 和 Weex 等成熟技术甚至让大家认为动态化是跨端技术的标配。

美团外卖团队从 2019 年 6 月开始投入对动态化的研究,目前已在多个业务模块上线,内部项目代号 “Flap” 。此方案的特点在于动态化需求开发方式与普通 Dart 开发无异,且运行时的页面树构建与事件逻辑不再分开,除 Dart 外不引入其他技术栈与虚拟机。尽可能的降低跨端通信的损耗,并将一些耗时操作转由线下执行,以达到高效运行的目的。配合以便捷的调试环境,分阶段的质量控制,齐全的动态化工具链,真正的做到对开发同学友好且“无痛”。

本次 GMTC 大会,将会分享我们的动态化方案原理与实践经验,希望能够为此领域上想尝试或正在尝试的团队提供借鉴与思路。

演讲提纲:

1. 背景介绍

  • App 多技术栈之间的包袱与平衡
  • Flutter 在美团点评的现状
  • 动态化的业务诉求

2. Flap 的优势与特点

  • Flap 的特点与工作流
  • Flap 灵感来源与技术挑战

3. Flap:Flutter 动态化生态建设

  • Flap 动态化技术架构全景图
  • Flap 核心原理与示例片段 
  • 基础设施生态与周边工具链的建设
  • 多阶段质量控制

4. 展望与总结

  • 美团外卖的动态化体系
  • 未来 App 最终组成形态

听众收益:

  1. 结合自身业务体量的 Flutter 动态化选型思路
  2. 动态化功能所需的基建支撑,提升效率与质量的发力点
  3. 动态化在团队规模化落地时,如何在过渡期做好平滑接入与容灾

前沿亮点:

  1. 使用纯 Dart 做到的 Flutter 动态化,不引入其他技术栈虚拟机等;
  2. 降低跨端通信的损耗;
  3. 将耗时操作移到线下并前置,以换取运行期的更高性能。

听懂我的演讲,需要具备这些知识储备:

有基本的 Flutter 编程经验即可。

by 徐东

字节跳动
资深工程师

随着西瓜视频业务的快速扩展,业务对于开发效率提出了更高的要求,跨端技术作为提升客户端开发效率的常见方式,开始被西瓜研发团队提上日程。

2019 年 3 月我们正式开始了 Flutter 的实践落地,在一个几千万 DAU 以及近百人的研发团队落地这样一个"颠覆性"的技术,中间经历了很多困难,也有很多收获,希望借着这次机会向大家分享一下西瓜视频 Flutter 落地过程中的经验。

演讲提纲:

1. 引入跨平台技术的缘由

  • 双端产品设计基本一致
  • 前端工作量占大头
  • 双端人力难匹配

2. 技术选型思路

  • Flutter 的优势
  • Flutter 的劣势

3. 西瓜的实践经验

  • Flutter 使用 Android 系统字体
  • 如何解决 Flutter 和原生手势冲突
  • Flutter 播放器实现方案

4. 实践收益
5. 未来展望

  • 更加强大和易用的 Flutter Native 通信机制
  • 更加完善成熟的生态

听众收益:

  1. 跨端技术选型的思考
  2. 如何在大型项目中实践 Flutter 技术
  3. Flutter 技术落地中的实际问题与解决方案

交通指南

© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方
© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方
想要批量报名或更多优惠?
立即联系票务小姐姐 鱼丸
或致电:+86-15615403186