1. 项目缘起:从“落叶归根”这个意象聊起
1.1 这个App到底想解决什么问题
我做这个项目的最初动机,其实源于一次非常个人的体验。去年秋天,我坐在公园长椅上,看着树叶一片片落下,脑子里却还在想着工作群的未读消息、技术方案评审的争论、以及某个即将上线的版本Flutter编译报错。那一刻我意识到,我们的大脑已经被碎片化信息训练得像个永不停歇的弹幕机,连看落叶这种本该放空的事情,都变成了焦虑的背景音。
“落叶归根”这个App的名字,就是从那个场景里蹦出来的。我想做一个工具,它不追求功能堆砌,不强迫你社交打卡,也不搞什么冥想排行榜。它的核心目标只有一个:在你被思绪淹没的时候,用最简单优雅的方式,帮你把注意力拉回到当下这一刻。具体来说,就是提供一个轻量级的“正念日记”+“引导冥想”组合,让用户能随时记录当下的感受,或者跟着一段音频做几分钟的呼吸练习。
技术选型上,我一开始就锁定了Flutter。原因很简单:我需要同时覆盖Android、iOS和OpenHarmony三个平台,而Flutter的跨平台能力加上近年对OpenHarmony的官方支持,让我能用一个代码库搞定三端,不用为每个平台重复造轮子。而且Flutter的widget体系非常适合做这种需要精致动画和细腻交互的冥想类应用,它的渲染性能在移动端已经足够流畅。
1.2 为什么“落叶”这个意象贯穿了整个设计
很多人问我,为什么不直接叫“正念日记”或者“冥想助手”,而要起一个这么文艺的名字。其实“落叶归根”这四个字,非常精准地概括了这个App的核心交互逻辑。
- 落叶:代表你脑海中那些纷乱的思绪。每当你感到焦虑、烦躁、或者走神时,你可以在App里“落下”一片叶子。这片叶子可以是一段简短的文字记录,也可以是一个语音片段,或者只是一个简单的情绪标记(比如“烦躁”、“焦虑”、“平静”)。这个动作本身,就是一次“觉察”——你意识到自己走神了,这就是正念的第一步。
- 归根:代表你被引导着回到当下。App会根据你“落下”的叶子,提供针对性的回归练习。比如你标记了“焦虑”,App会推荐一个两分钟的呼吸练习;你标记了“烦躁”,可能会推荐一个身体扫描音频。这些练习的设计哲学是“轻量、不打扰、随时可停”,确保用户在任何碎片时间都能完成一次回归。
从技术实现角度看,这个设计让App的数据模型非常清晰:一个“叶子”就是一个记录对象,包含时间戳、情绪标签、内容(文本或音频路径)、以及完成状态(是否已进行回归练习)。数据库设计只有两张表:叶子表(Leaf)和练习记录表(Practice)。这种极简结构让后续的跨平台状态管理变得非常容易,后续我会详细讲。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型决策:为什么是Flutter + OpenHarmony,以及三端架构如何统一
2.1 Flutter对OpenHarmony的支持现状
在2023年之前,Flutter官方对OpenHarmony的支持还处于实验阶段,社区里有一批开发者用定制的引擎在跑,但稳定性堪忧。不过从Flutter 3.16开始,官方正式将OpenHarmony列为受支持的平台之一,在flutter create时就能直接选择--platforms=ohos。这个变化对我来说是决定性的,意味着我不需要再维护一个分支版本的Flutter引擎,可以直接使用官方的工具链。
当前(基于Flutter 3.22+)的情况是:OpenHarmony支持已经比较完善,包括Dart语言的编译、Flutter引擎的渲染(使用Skia图形库)、以及插件系统的适配。不过有一个关键点:OpenHarmony的API与Android并不完全兼容,所以很多Android原生插件(比如高德地图、支付SDK)是无法直接使用的。我在做“落叶归根”时,有意识地避开了依赖第三方原生插件的功能,所有核心能力(UI、音频播放、本地存储、文件管理)都使用Flutter内置插件或纯
