字节跳动的多平台绽放秘诀 | Flutter 开发者故事
Bilibili 视频链接 https://www.bilibili.com/video/BV1xB4y197Tc/
Flutter 拥有令人难以置信的超高效率,与原生双端开发相比,Flutter 为我们的团队节省了大约 1/3 的开发时间。
—— 董岩, 字节跳动 Flutter Infra 团队负责人
多平台出击,拥抱更多机遇
在更多的平台上覆盖更多用户一直是字节跳动产品团队的目标之一。比如在中国非常受欢迎的短视频娱乐应用 "抖音火山版",就让 iOS 和 Android 平台的用户都可以通过分享短视频来展示他们的爱好、技能与日常,且拥有非常一致的体验。
△ 抖音火山版
在 2B 领域,字节跳动则有一款支持企业协同办公的一站式应用 Lark,通过音视频会议、文档共享、及一系列项目管理与能效工具来支持团队的即时通讯需求。整个 Lark 的生态系统在 Flutter 的助力下全面覆盖了 iOS、Android、web 端与桌面平台。
△ 协同办公一站式应用 Lark
开发更高效,释放团队创意
热重载 (Hot reload) https://flutter.cn/docs/development/tools/hot-reload
使用 dart:ffi 调用本地代码 https://flutter.cn/docs/development/platform-integration/c-interop
有些时候,Flutter 打造的作品本身也能进一步提升团队的工作效率。比如字节跳动最有趣的 Flutter web 应用之一 Alchemy,这是一款服务于抖音内容创作的内部工具,为 PGC 与 UGC 用户提供便捷有趣的素材生成工具与海量素材,并批量产出受版权保护的设计物料。
△ Alchemy
像素级精美,收获用户芳心
Flutter 对应用屏幕渲染的精确控制能力,让团队得以放开手脚打磨产品的每一个像素。"Lemon8" 就凭借优良的用户体验荣登 2021 年日本地区 Google Play 年度应用榜单,这是一款兴趣种草社区应用,专注于时尚、美容、美食、旅游、居家、健身、艺术、户外、摄影等内容领域。多样的兴趣圈层对应用的一致认可,离不开 Flutter 对画布强大的控制力,以及团队的精心雕琢。
△ Lemon8
多平台开发战略核心
Flutter 是我们公司当下的多平台开发战略核心。我们从最初的几个应用开始,逐渐发展到现在的 90 多个应用,面向包括移动端、web 端、桌面端,以及嵌入式设备等多个平台。我们致力于推动 Flutter 在字节跳动的深度应用,并对核心框架作出贡献。
—— 王莹,字节跳动 Flutter Infra 引擎技术负责人
移动端医疗服务应用 "小荷健康"、推荐优质房地产内容和信息的应用 "幸福里"、团队虚拟办公工具 "Coze",以及程序员和产品经理们熟悉的社区平台 "掘金"……字节跳动如今使用 Flutter 开发的应用已经超过 90 款,全部由字节跳动的 800 多名 Flutter 开发者和 Flutter Infra 团队共同支持。
iOS
https://github.com/flutter/engine/pull/17366
Android
https://github.com/flutter/engine/pull/30924
优化 RasterCache
https://github.com/flutter/engine/pull/31892
PlatformView
https://github.com/flutter/engine/pull/27662
多引擎
https://github.com/flutter/engine/pull/17366
线程调度
https://github.com/flutter/engine/pull/30605
x86 桌面系统
https://github.com/flutter/engine/pull/30417
Web
https://github.com/flutter/website/pull/3296
DevTools
https://github.com/flutter/engine/pull/30538
空安全问题
https://github.com/flutter/engine/pull/30145
推荐阅读