生存余量 (Runway)

从被苹果拒审到敏捷转型的极简个人财务沙盘推演工具

“代码只是手段,产品定位与合规性才是决定应用生死的关键。”

《生存余量 (Runway)》 是一款基于“财务跑道 (Financial Runway)”经济学模型的跨平台极简预算工具。它帮助用户通过输入总资产与日常开销,计算并可视化资金的剩余支撑时间,并深度集成了“沙盘推演”模式,为用户的财务决策提供动态、直观的参考。


💡 敏捷转型:一次昂贵的 App Store 试错


  • 初期试错:项目初版命名为《能活几天》,采用带有生存焦虑色彩的“倒计时”设计。在提交 Apple App Store 时,因触发 Guideline 1.1.6 (令人不适的内容/误导性) 遭遇无情拒审。
  • 涅槃重生 (The Pivot):收到拒审反馈后,我迅速调整产品定位,将应用从“寿命预测的噱头”重构为“专业的 FinTech 财务规划工具”。全面剥离了敏感词汇和惊悚视觉元素,引入了冷静的深色金融 UI 主题,并重命名为《Runway》。这不仅成功规避了审核风险,更大幅提升了产品的长期实用价值。

✨ 核心功能与产品壁垒


  • 📊 动态可视化财务跑道:抛弃枯燥的纯数字面板,使用 Chart Kit 构建平滑的资产消耗趋势图,让用户一目了然地看到资金归零的轨迹。
  • 🎛️ 实时沙盘推演 (What-If Simulation):这是防范 App Store “4.2 最低功能要求” 拒审的核心壁垒。用户可通过拖拽原生滑块,实时模拟“削减 X% 日常开支”或“注入 $Y 紧急备用金”的场景。图表引擎会在 0.1 秒内重新计算并重绘预测曲线,提供丝滑的交互体验。
  • 💾 本地无感持久化:利用 AsyncStorage 实现极简的“无感记录”,消除每次打开 App 重复输入的摩擦力,在保障用户财务数据绝对隐私的同时,做到真正的即开即用。

🛠️ 技术深水区与解决方案


  • 跨平台交互的“幽灵”Bug:在 Web 端调试时,原生的 Slider 组件无法响应鼠标拖拽事件(仅支持触控)。我引入了 Platform 模块进行环境侦测,针对 Web 端降级渲染 HTML 原生的 <input type="range"> 组件,并重新绑定状态管理逻辑,完美打通了双端的交互体验。
  • 浮点数精度引发的渲染灾难:滑动条计算过程中产生的超长浮点数(如 -40.9827…%)导致了状态更新卡顿及 UI 错位。通过在状态更新层引入数据格式化与步长 (Step) 控制,确保前端渲染和图表引擎接收的始终是干净的整型或保留两位的有效数据。
  • AI 驱动的代码重构:深入使用 Trae 作为 AI 结对编程助手。通过结构化的 Prompt Engineering,在极短时间内完成了全局变量大洗牌(从 DeathRunway的去敏化)、组件解耦以及跨平台 Bug 的快速定位与修复。

技术栈: React Native (Expo) | TypeScript | React Native Web | Chart Kit | Trae AI

🚧 核心代码与执行程序整理中,即将开源。