Tonal

使用 Flutter 确保 Tonal 的功能对等性

目标

Tonal 的移动工程团队在公司发布其独特的家庭健身产品前几个月才开始开发移动应用,因此团队需要尽可能快地推进项目。Tonal 的原生 Android 软件团队致力于构建在 Tonal 硬件上运行的原生 Android 应用,这意味着只有一名软件工程师从零开始构建移动应用。Tonal 之前从未发布过移动应用,因此不清楚 Android 和 iOS 用户各占多少比例,但他们知道希望平等对待这两个平台并保持功能对等。他们还需要一个框架,使他们能够构建一个定制的、带有品牌特色的用户界面,既能体现 Tonal 的独特性,又能感觉像一个友好的原生移动应用。而且由于该应用需要长期维护,他们需要一个解决方案,使其能够随着不断壮大的软件工程师团队而扩展。

为什么选择 Flutter?

Tonal 对 Flutter 的架构印象深刻。与其他跨平台框架不同,Flutter 负责渲染用户界面。这项基本的架构决策让 Tonal 更有信心,他们能够构建定制的用户体验,而无需花费大量时间调试跨平台的视觉问题。尽管团队中没有人有 Dart 经验,但他们通过尝试该语言,发现它友好且直观,因此团队充满信心。而且由于该框架提供了代码格式化工具、代码检测工具、静态代码分析器以及标准约定文档,团队能够非常迅速地开始构建功能。在构建其他框架的概念验证所需时间不到一半的时间里,Tonal 团队就能够使用 Flutter 重建整个应用。

他们的解决方案

尽管团队成员来自不同背景和经验,但 Dart 和 Flutter 对每个人来说都易于快速上手。Tonal 能够在不到一年的时间里,将一个应用从想法变为一个成熟的、可投入生产的移动应用,并部署给实际用户。Flutter 凭借 Dart 同时编译 AOT 和 JIT 的能力,通过有状态热重载等功能,使快速迭代变得容易。自 2019 年应用发布以来,Tonal 移动团队能够快速迭代应用,每两周发布新版本。

“Flutter 的开发者体验是一流的。与大多数声称具有‘热重载’开发者体验的 JavaScript 框架不同,Flutter 的热重载实际运行可靠且始终非常快速。”

- Max Lapides,Tonal 移动软件工程经理

成果

Flutter 使得用极少的工程资源发布应用变得容易。2019 年 Tonal 发布其移动应用时,项目上只有两名工程师。但自那时起,尽管团队规模显著增长,Flutter 仍持续支持应用不断增加的复杂性,并随公司一同扩展。迄今为止,Tonal 已在移动应用中发布了一系列令人惊叹的功能,包括自定义图表库、Rive 动画、可让您流畅滚动数万活跃成员的排行榜、自定义原生锻炼视频播放器等等,还有更多新功能正在开发中。所有这些都已在 iOS 和 Android 平台之间实现了完整的功能对等。Flutter 让 Tonal 能够专注于构建出色的功能,并保持用户积极参与和满意。