Tonal

使用 Flutter 确保 Tonal 的功能一致性

目标

Tonal 的移动工程团队在公司宣布其独特的家庭健身产品之前几个月就开始着手开发移动应用程序,因此团队需要尽快行动。Tonal 的原生 Android 软件团队致力于构建在 Tonal 硬件上运行的原生 Android 应用程序,这使得只有一名软件工程师从头开始构建移动应用程序。Tonal 之前从未发布过移动应用程序,因此他们不知道 Android 和 iOS 用户的比例,但他们知道他们希望对这两个平台给予同等关注并保持功能一致性。他们还需要一个框架,使他们能够构建一个定制的、品牌的、感觉独特的 Tonal 用户界面,同时仍然感觉像一个友好的、原生的移动应用程序。由于该应用程序需要在很长一段时间内进行维护,因此他们需要一个能够随着不断增长的软件工程师团队一起扩展的解决方案。

为什么选择 Flutter?

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

他们的解决方案

尽管团队成员来自不同的背景和经验,但 Dart 和 Flutter 对于每个人来说都很容易上手。Tonal 能够在不到一年的时间内,将一个想法发展成一个完整的、可投入生产的移动应用程序,并部署给实际用户。Flutter 使得快速开发变得容易,例如状态热重载功能,得益于 Dart 能够同时编译 AOT 和 JIT。自 2019 年应用程序发布以来,Tonal 移动团队能够快速迭代应用程序,每两周发布一个新版本。

“Flutter 的开发者体验是顶级的。与大多数吹嘘“热重载”开发者体验的 JavaScript 框架不同,Flutter 的热重载实际上运行可靠且始终非常快。”

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

成果

Flutter 使得用很少的工程资源发布应用程序变得容易。当 Tonal 在 2019 年推出其移动应用程序时,项目中只有两名工程师。但随着团队规模的不断扩大,Flutter 仍然支持应用程序不断增长的复杂性,并随着公司一起扩展。Tonal 迄今为止已经在移动应用程序中发布了大量功能,包括自定义图表库、Rive 动画、排行榜(允许您平滑滚动浏览数万名活跃成员)、自定义原生锻炼视频播放器等等,并且还有更多新功能即将推出。所有这些都实现了 iOS 和 Android 的完整功能一致性。Flutter 使 Tonal 能够专注于构建出色的功能,并让用户保持参与和愉悦。