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 可以专注于构建出色的功能,并保持用户参与度和满意度。