从 SwiftUI 到 Flutter:一次失败的尝试
为什么想用 Flutter
作为 iOS 独立开发者,我一直有一个痛点:Android 用户的请求。
“什么时候出安卓版?”
这个问题我收到了无数次。
所以今年我决定尝试一下 Flutter,看看能不能同时覆盖两个平台。
学习过程
花了大约 3 周时间系统学习 Flutter:
- 官方文档
- YouTube 教程
- 实际动手写了几个 Demo
整体体验还不错,Dart 语言上手比较快,Hot Reload 确实很爽。
尝试迁移闪念
我选择了闪念作为试验田,尝试用 Flutter 重写核心功能。
遇到的问题
1. 音频处理
闪念的核心是语音录制。在 Flutter 里处理音频比 iOS 原生复杂很多:
- 需要写 Platform Channel
- 第三方库的质量参差不齐
- 一些 iOS 特性无法完美复现
2. UI 细节
虽然 Flutter 的 UI 能力很强,但要做到和原生 iOS 一样的质感,需要付出大量额外努力:
- 滑动的物理效果
- 键盘交互
- 系统控件的一致性
3. 包体积
Flutter 打包后的体积比原生大很多,这对一个”极简”定位的 App 来说不太理想。
最终决定
经过 2 个月的尝试,我决定放弃 Flutter 方案。
原因不是 Flutter 不好,而是:
- 投入产出比:迁移成本太高,可能需要半年以上
- 质量妥协:无法达到原生的品质标准
- 维护成本:需要同时维护两套逻辑
现在的计划
暂时专注 iOS 平台,把产品做到极致。
对于 Android 需求,考虑:
- 某些产品做纯 Web 版(如时间胶囊)
- 等 Swift 跨平台方案成熟
- 或者未来招一个 Android 开发
反思
这次”失败”其实很有价值:
- 亲身验证了跨平台的利弊
- 学习了新技术,拓宽视野
- 更坚定了专注的决心
有时候,知道什么不该做,和知道什么该做一样重要。