字节跳动旗下运营着一系列成功的用户产品、企业应用以及服务,覆盖信息、教育、娱乐等不同领域。随着产品阵容的不断发展,传统的原生双平台开发已经难以满足团队更高效、更灵活、更精美,以及更多样的产品研发需求。Google 首次发布 Flutter 的时候,团队就果断决定用手上的 iOS 和 Android 应用来测试其跨平台开发能力,而 Flutter 也用不逊于原生框架的性能表现和极高的生产力迅速征服了团队成员们的心。点击这里 查看开发者故事视频。

Flutter 拥有令人难以置信的超高效率,与原生双端开发相比,Flutter 为我们的团队节省了大约 1/3 的开发时间。

—— 董岩, 字节跳动 Flutter Infra 团队负责人

多平台出击,拥抱更多机遇

在更多的平台上覆盖更多用户一直是字节跳动产品团队的目标之一。比如在中国非常受欢迎的短视频娱乐应用 "抖音火山版",就让 iOS 和 Android 平台的用户都可以通过分享短视频来展示他们的爱好、技能与日常,且拥有非常一致的体验。

△ 抖音火山版

在 2B 领域,字节跳动则有一款支持企业协同办公的一站式应用 Lark,通过音视频会议、文档共享、及一系列项目管理与能效工具来支持团队的即时通讯需求。整个 Lark 的生态系统在 Flutter 的助力下全面覆盖了 iOS、Android、web 端与桌面平台。

△ 协同办公一站式应用 Lark

开发更高效,释放团队创意

热重载 (Hot reload) 一直是 Flutter 最令开发者们称道的开发特性之一,让工程师不再需要一遍遍地等待漫长的编译,从而高效调试代码,快速将 UI 设计师的想法变为现实。

为了让开发者们能最大限度利用各个平台的原生底层功能,Flutter 还提供了外部功能接口 FFI。这使得 Flutter 应用可以直接调用 C++ 层代码,提高与硬件交互的效率,同时实现端上深度学习模型的部署。

"极课错题打印机" 和 "极课阅卷大师" 两款智能设备上搭载的应用都使用 Flutter 开发,前者用于放置在校园内供学生们自助打印错题,后者则可以帮助老师智能识别学生的答卷以及统计分数。借助 Flutter,团队得以为超过 200 所学校的师生快速完成设备软件的开发以及迭代。

△ 智能设备 "极课错题打印机" 中的应用使用 Flutter 开发

有些时候,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 团队共同支持。

在如此广泛地采用 Flutter 的同时,团队自然也对 Flutter 开放的社区赞叹不已: 来自世界各地的开发者们都在为社区贡献代码、编写 package、完善文档和制作教程,而总有让您挠头的问题能在社区中找到答案。

团队也在为 Flutter 核心框架作出自己的贡献。比如提升核心框架在 iOSAndroid 上的稳定性,优化 RasterCachePlatformView多引擎线程调度x86 桌面系统Web 等功能,以及为 Flutter 的 DevTools空安全问题 提供修复等等。

随着 Flutter 3 的发布,相信字节跳动团队会创造出更多、更美好的多平台本地化应用,让我们拭目以待!

字节跳动的多平台绽放秘诀 | Flutter 开发者故事的更多相关文章

  1. 借助 Flutter 跨平台特性连接 10 亿玩家 | Flutter 开发者故事

    由光子工作室及 Krafton 联合研发的 PUBG MOBILE 依然保持着极高的人气,目前全球有 10 亿玩家,日活跃 5,000 万 (不包括中国大陆地区).从游戏策划伊始,团队就打算为各个平台 ...

  2. 双倍NB!字节跳动资深研发花7天肝出的这份286页“Flutter技术进阶”

    前言 截至目前,字节跳动有很多业务落地了 Flutter 技术方案,包括今日头条.西瓜视频.皮皮虾等 20 多个业务在使用 Flutter 开发,有纯 Flutter 工程,也有 Flutter 与 ...

  3. 🔥🔥🔥Flutter 字节跳动穿山甲广告插件发布 - FlutterAds

    前言 Flutter 已成为目前最流行的跨平台框架之一,在近期的几个大版本的发布中都提到了 Flutter 版本 Google 广告插件 [google_mobile_ads] .对于"出海 ...

  4. 【北京/上海/南京】【部门直推】【可查询】【实习&社招】字节跳动数据平台前端内推

    [北京/上海/南京][部门直推][可查询][实习&社招]字节跳动数据平台前端内推 重要信息,写在前面  [投递邮箱]chengxinsong@bytedance.com [微信扫码] 2019 ...

  5. 字节跳动数据平台技术揭秘:基于 ClickHouse 的复杂查询实现与优化

    更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 ClickHouse 作为目前业内主流的列式存储数据库(DBMS)之一,拥有着同类型 DBMS 难以企及 ...

  6. 从字节跳动离职后,拿到探探、趣头条、爱奇艺、小红书、15家公司的 offer【转】

    前言 博主目前从事Android开发3年,前两年一直在抖音工作.我这篇文章并不是简单的描述一些面试中的题,或者总结一些Android的知识,而是想记录我整个的想法和准备的过程,以及一些心得体会,让大家 ...

  7. 2020年Android开发最新整理阿里巴巴、字节跳动、小米面经,你不看看吗?

    前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想 ...

  8. 字节跳动Android实习面试难吗,应该如何应对?

    字节跳动的面试难不难其实很难去非常准确的定义,但是能肯定的一点是,字节跳动的面试题都很有水平,真正考察了该岗位在以后工作中需要的能力. 大学学的Java后面又自学Android方向,跟着老师在实验室做 ...

  9. 一份热乎的字节跳动客户端面经,已拿Offer

    字节面试过程: 4月4号进行内推,7天的简历评估,11号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过.14号现场面试,次日收到通知,通过,二面.三面都很顺利.20号进行HR面,26号收 ...

  10. 字节跳动五面都过了,结果被刷了,问了hr原因竟说是...

    说在前面,面试时最好不要虚报工资.本来字节跳动是很想去的,几轮面试也通过了,最后没offer,自己只想到几个原因:1.虚报工资,比实际高30%:2.有更好的人选,这个可能性不大,我看还在招聘.我是面试 ...

随机推荐

  1. oeasy教您玩转vim - 55 - # 参数替换

    ​ [Github地址] (https://github.com/overmind1980/oeasyvim) [Gitee地址] (overmind1980/oeasyvim) [蓝桥实验楼 邀请码 ...

  2. 辅助分类器生成对抗网络( Auxiliary Classifier Generative Adversarial Network,ACGAN)(附带pytorch代码)

    1 ACGAN基本原理 1.2 ACGAN模型解释 ACGAN相对于CGAN使的判别器不仅可以判别真假,也可以判别类别 .通过对生成数据类别的判断,判别器可以更好地传递loss函数使得生成器能够更加准 ...

  3. Pulsar客户端消费模式揭秘:Go 语言实现 ZeroQueueConsumer

    前段时间在 pulsar-client-go 社区里看到这么一个 issue: import "github.com/apache/pulsar-client-go/pulsar" ...

  4. 无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升

    无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升 1.简介 MaxKB(Max Knowledge Base)是一款基于 LLM 大语言模 ...

  5. 【Java】暂存逻辑

    需求说明: 需求是填写一个表单时暂时保存输入项,不提交表单 回来再次填写时可以恢复或者放弃,或者更改内容继续暂存 放两张UI图,一个移动端,一个手机端: 逻辑分析: 存储方式有这么几种,Cookie存 ...

  6. python高性能计算:cython使用openmp并行 —— 报错:undefined symbol: omp_get_thread_num

    test.pyx文件: from cython.parallel cimport parallel from openmp cimport omp_get_thread_num cpdef void ...

  7. 使用浪潮AI计算平台之分布式计算(Tensorflow框架下 PS/Worker模式下的异步计算)

    虽然Tensorflow一直都是支持分布式计算的,但是由于只有一台电脑,一个GPU,所以别说分布式的tensorflow的使用了,就是单机多卡都是没有使用过的,由于后来可以有机会使用这个浪潮的AI计算 ...

  8. 阿里2021年春季实习笔试题(最后一道大题)(2020 China Collegiate Programming Contest, Weihai Site) (C. Rencontre codeforces.com/gym/102798)

    实验室的慕师弟phd马上要毕业了,正准备先找个实习,投了阿里2021年春季实习的招聘,遇到最后一道编程大题没有思路事后找到了该题的最原始出处,即 2020 China Collegiate Progr ...

  9. pytorch之网络参数统计 torchstat & torchsummary

    参考 : https://blog.csdn.net/weixin_45292794/article/details/108227437 https://blog.csdn.net/jzwong/ar ...

  10. python多进程multiprocessing模块的变量传递问题:父进程中的numpy.array对象隐式序列化到子进程后的inplace操作的问题

    参考: https://docs.python.org/zh-cn/3/library/multiprocessing.html cloudpickle -- Python分布式序列化的专用模块   ...