2 分钟

如何为随手记录费用创建移动应用

学习如何构建一款用于随手记录费用的移动应用:包括关键功能、用户体验流程、离线捕获、收据扫描、数据同步、安全性、测试与上线策略。

如何为随手记录费用创建移动应用

你要构建的东西以及它为何重要

“随手记录费用”应用是一个用于在开销发生时立即记录支出的简单手机工具——在街角、出租车上、机场排队时。重点是速度:最少的输入,几次轻触就完成。如果应用需要填写长表单或完美输入数据,当生活变忙时人们不会去使用它。

适用对象

这种应用对以下人群尤其有用:需要跟踪业务开支的自由职业者、需要轻量报销记录的小团队、以及需要处理多币种和大量收据的旅行者。它也适合那些常在周末才想起那笔“18.40 美元”来自哪里的人。

本指南你将构建(并决定)的内容

读完本文后,你将拥有一个清晰的 MVP 费用记录应用计划,它可以:

  • 快速捕获一笔费用(金额、分类、简短备注)
  • 在可用时附加收据照片
  • 在离线时可靠工作并在稍后同步
  • 在需要报账、纳税或报销时导出简单的费用报表

你还将做出一些实用决策——什么对你的用户来说是“快速捕获”,哪种扫描方式更适合你的预算,以及在不增加摩擦的情况下如何处理隐私。

先做 MVP,再迭代

目标不是构建完整的会计系统。先发布一个人们可以每天无意识使用的版本。一旦看到真实的使用模式,你可以添加更智能的建议、更好的报表和更深的集成。

本文保持聚焦:目标是一个可交付的首发版本,而不是被不必要的复杂性拖慢。

用户需求与核心使用场景

如果你的应用是为随手记录费用而生,核心需求很简单:在开销发生的瞬间捕获信息,即便细节很混乱。人们不想在收银台“做会计”——他们想要一个以后可以信赖的快速记录。

关键用户任务

大多数用户会在三类任务间循环:

  • 立即捕获: 金额(或照片)、商家,以及类似“客户午餐”的简短提示。
  • 稍后修正: 分类、税/小费拆分、项目/客户、支付方式。
  • 提交/导出: 分享给财务、报销或个人预算工具。

常见设计要规避的痛点

速度问题通常会破坏费用跟踪习惯:

  • 收据丢失(纸质收据会褪色、被丢弃或根本没打印出来)。
  • 忘记上下文(是谁的午餐、属于哪个项目)。
  • 表单太慢(太多必填项、太多屏幕、过多输入)。

选定一个主要场景

选择一个“默认时刻”,让你的应用在该场景中表现优于其他任何同类:咖啡/出租车/在路上吃东西——单手拿手机、光线差、时间有限、信号不稳。这个场景应主导你的 MVP 决策(大按钮、最少输入、优雅的离线行为)。

保持真实的成功度量

早期定义可衡量的结果:

  • 记录一笔费用所需时间: 例如,基础条目控制在 10–15 秒以内。
  • 完成率: 被捕获条目中在 48 小时内完成(定完分类等)的比例。

简单的用户故事

  • “作为旅行者,我想拍下收据并立即保存,这样我在到酒店前就不会丢失它。”
  • “作为顾问,我希望一键添加像‘Project Delta’这样的备注,以便日后正确提交报销。”
  • “作为经理,我想要一个干净的导出文件,这样报销就不用来回沟通。”

费用记录的 MVP 功能清单

费用记录应用的成功在于能在几秒钟内捕获要点,然后不打扰用户。对于 MVP,专注于单一路径的“添加费用”流程:可靠保存记录并方便后续查找。

必填字段(仍然感觉完整的最低项)

从这些不可妥协的字段开始:

  • 金额(支持小数并清楚显示货币)
  • 商家(你付钱的对象)
  • 分类(至少一套简易入门分类)
  • 日期(发生日期)
  • 备注(短小的说明,便于日后回溯)
  • 照片(可选附加,但应用必须支持)

可选字段(有用但不应阻止保存)

仅在输入快速且明显有价值时添加:

  • 项目/客户(针对自由职业者和团队)
  • 支付方式(现金、卡、可报销等)
  • 标签(用于灵活分组,如“旅行”或“税务”)

可以自动填充的内容

自动填充可以减少摩擦并提高准确度:

  • 日期/时间 默认设为“现在”,可编辑。
  • 货币 基于设备区域设置;允许手动切换。
  • 位置 仅在用户主动授权时收集;保证 MVP 在没有位置的情况下也好用。

明确定义“备注”的含义

尽早决定:“备注”是自由文本,还是也提供模板(例如“去机场的出租车”、“客户午餐”)?对于 MVP,自由文本已足够。如果想追求更高速度,可后续加入几个快速选择建议。

MVP 范围 vs “之后的”清单

MVP 范围: 创建费用、编辑、列表/搜索、基础分类、照片附件、简单汇总。

之后: OCR 扫描、更智能的分类建议、导出、多币种换算、团队共享。

面向真实场景的快速捕获 UX 流程

一款好的费用记录应用要为你实际消费的那一刻设计:站在柜台、赶往会议、或一手拎着包。UX 目标很简单——在几秒内捕获可用记录,尽可能少的思考。

从一键进入开始

别让用户找半天才打开应用。至少提供一个快速启动选项:

  • 锁屏小组件或主屏小组件用于“新费用”
  • 应用快捷操作(长按图标)直接进入录入界面
  • 系统快捷方式(语音或自动化)供高频用户使用

打开应用时,应直接落在捕获屏,而不是仪表盘。

选择与速度匹配的输入模式

两种模式都很有效:

  • 单屏模式: 在一个页面展示金额、商家、分类和备注。适合熟练用户和快速编辑。
  • 逐步模式: 金额 → 分类 → 详情。适合需要大输入控件且避免干扰的场景。

如果选逐步模式,保持步骤数量少并允许跳过可选字段。

用默认值与智能建议减少输入

通过预填“正确”选项让操作更容易:

  • 最近使用的支付方式和分类
  • 默认货币(旅行时可快速切换)
  • 从历史记录建议的商家

金额输入用大数字键盘,文本字段尽量设为可选。

支持“先保存、后编辑”

现实往往很乱。允许用户在只有金额(或仅有收据照片)时就点击 保存,然后再完善。

一个实用流程:

  • 立即保存 → 显示轻量确认
  • 将条目置于“未分类”或“待审核”列表
  • 允许从列表中快速编辑,而不必重新打开完整表单

防止无障碍导致摩擦

如果触控或阅读困难,快速捕获就会失败。使用大触控目标、清晰标签(不要仅用图标)、强对比和可靠的暗色模式支持。确保主要操作(保存)单手即可触达。

收据照片与 OCR 扫描选项

收据捕获决定了应用是轻松顺手,还是令人恼火。目标很简单:在排队或去出租车路上也能用一只手快速拍下可读收据照片。

相机捕获目标

将相机流程设计成“开箱即可用”:

  • 针对纸张(常有光泽、皱折)的自动对焦与自动曝光
  • 清晰的取景提示(边缘引导)和即时反馈,如“太暗”或“靠近点”
  • 单手快速捕获:大的快门按钮、触觉反馈和快速重拍

把扫描作为可选项。用户应能立即保存照片并继续,随后在后台完成提取。

OCR 选项:设备端 vs 服务端

设备端 OCR 隐私更好、支持离线并且速度快(无需上传)。但在旧设备、格式不规则或照片质量差时可能表现不足。

服务器端 OCR 在不同设备上结果更一致,且便于集中改进,但会增加上传时间、需要网络并引发隐私或合规问题。如果走这条路,必须明确说明上传的内容以及存储时长。

一个实用方法是混合:先尝试设备端,在线且用户同意时再提供服务器 OCR。

应提取的内容(以及不必提取的)

从高置信度字段开始,它们能驱动报表:

  • 总金额
  • 商家名称
  • 日期
  • 税额(可选)
  • 货币(通过符号 + 区域提示识别)

逐项明细可以缓后再做;它们增加复杂度,且对简单费用报表 souvent 不必要。

当 OCR 失败时:让手动编辑快速可做

始终提供干净的手动录入界面,快速修正:点选即可修改金额/日期、商家建议以及“标记为不可识别”选项。

防止重复

加入轻量的反重复检查:当新收据在金额 + 时间窗口 + 商家相似度上与现有条目极为接近时发出警告,并让用户确认,而不是阻止保存。

离线模式、存储与同步策略

构建实用的导出功能
创建简单的 CSV 或 PDF 导出界面,并与真实用户一起优化报表格式。

如果想让费用记录真正“随行”,它必须在地铁、客户地下室或停车场也能工作。把离线当作默认:用户应能添加费用、附上收据照片并继续,无论是否有信号。

离线优先:先写本地,再同步

当用户点击 保存 时,立即把费用存在设备上。不要把保存操作绑定到网络请求。这个决定能消除大部分挫败感并防止丢失条目。

就地存储而言,考虑手机上的一个小型加密数据库(例如基于加密 SQLite 的存储)。它应保存:

  • 费用字段(金额、货币、日期、分类、备注)
  • 收据元数据(文件名、状态、时间戳)
  • 一个同步队列(需要上传的项)

不会让人困惑的同步规则

同步往往让应用显得古怪。选一个规则并告知用户:

  • 最后写入优先 是最简单的:较新的编辑覆盖旧的版本。这通常适用于费用记录,因为很少有人同时在两台设备上编辑同一条目。
  • 如果预期会有频繁的多设备编辑(例如共享账户),考虑一个轻量的 字段级合并:一端改分类不应抹去另一端编辑的备注。

还要决定当一端删除而另一端编辑时的行为。常见做法是“软删除”(标记为已删除、同步,然后稍后清理)。

收据图片的后台上传

收据照片通常较大,也是最易失败的部分。先把图片保存在本地,然后在在线时后台上传(优先在 Wi‑Fi 下,除非用户选择允许移动网络)。上传应支持续传,以便在不稳定网络下不会从头开始。

清晰的反馈:已排队、同步中、失败

给用户可见且冷静的状态:

  • 已排队(已保存并在等待)
  • 同步中…
  • 失败 并提供 重试 按钮和可选的“全部重试”

这能把同步从谜团变成可预测的体验。

不用过度思考的技术栈选择

你可以用许多不同工具构建优秀的费用记录应用。目标不是选“最棒”的栈,而是选一套你团队能交付并维护的栈。

平台:iOS、Android 还是跨平台

如果团队熟悉 Swift/SwiftUI 或 Kotlin/Jetpack Compose,原生开发常常是实现精致、可靠捕获体验(相机、离线存储、分享扩展)的最快路径。

如果需要同时覆盖两个平台且团队小,选择一个跨平台方案并坚定使用:

  • Flutter: 性能强、UI 一致、相机与离线包成熟。
  • React Native: 如果已有 Web/JS 经验,上手快、生态大。

一个实用的 MVP 规则:如果只有一名移动工程师,选跨平台;如果有专门的 iOS + Android 人才,则走原生。

应用架构:保持可预测

采用简单一致的模式,让“编辑费用”“附加收据”“同步状态”等功能不会变得混乱:

  • MVVM(在原生与 Flutter 中常见)适合表单与状态管理。
  • Redux 风格状态(在 React Native 中常见)适合当离线 + 同步引入大量应用状态时使用。

不要过度架构:UI、状态与数据层的清晰分离通常就足够。

后端:只做你真正需要的事

许多 MVP 只需要四项:

  1. 认证(邮箱、Apple/Google 登录)
  2. 数据库(费用、分类、设置)
  3. 文件存储(收据照片)
  4. 搜索/导出(基础筛选与 CSV/PDF 生成)

托管后端(Firebase、Supabase)能缩短搭建时间。自建后端(Node/Django/Rails)在你需要复杂报表或严格合规时提供更多控制。

如果想快速试验且不重写整个管道,像 Koder.ai 这样的低代码/对话驱动平台也很有用:你可以通过聊天式工作流原型化核心流程(费用列表、捕获表单、收据上传、导出界面),然后在准备好接手维护时导出源码。它特别适合常见的 MVP 选择,例如带 React 后台仪表板以及 Go + PostgreSQL 后端,并支持规划模式、快照与回滚以保证迭代安全。

API 设计(保持简单)

围绕核心对象设计端点:

  • POST /expenses, PATCH /expenses/{id}
  • POST /receipts(上传),并关联到某条费用
  • GET /expenses?from=&to=&category=
  • POST /exports(返回可下载文件)

成本与复杂度权衡

跨平台可以节省构建时间,但在相机/OCR 边缘场景可能需要额外工作。托管后端降低早期成本,而自建后端在你有规模与明确路线图时长期可能更省钱。如果不确定,先用托管方案并保留迁移路径(参见 /blog/offline-sync-basics)。

安全、隐私与权限

设计离线同步
定义离线优先的保存和同步队列,然后让 Koder.ai 生成初始版本。

费用记录应用很快会成为个人与业务敏感信息的容器。把安全与隐私当作核心产品需求,而不是“以后再做”的任务。

什么算敏感数据?

即便不存储银行信息,你仍会处理能揭示消费习惯或业务活动的信息:

  • 收据照片(通常包含部分卡号、店铺地址、税号)
  • 商家名称、明细与总额
  • 日期、时间戳以及(若你加入)位置上下文
  • 像“客户晚餐”或“团队差旅”这样的备注

用户期望的基本保护措施

从一个简单、可辩护的基线开始:

  • 传输加密: 所有 API 调用使用 TLS,防止在公共 Wi‑Fi 上被窃听。
  • 静态加密: 在设备上(如果可能)和云端数据库/存储中对敏感数据进行加密。
  • 最小权限访问: 将收据图片与解析后的数据保存在不同的桶/集合中并施加严格规则。

如果使用第三方 OCR,明确说明上传内容、存储时长以及供应商是否可用于模型训练。

权限:仅在需要时请求

权限是建立信任的时刻。在需要时才请求并用简单语言说明:

  • 相机: 只有当用户点击“扫描收据”时请求。
  • 照片/媒体库: 只有当用户选择“从相册上传”时请求。

默认避免请求位置;很多用户并不期待费用记录需要位置。

账户访问与应用级锁

对大多数 MVP 来说,邮件 + 魔法链接/一次性验证码 足够。若目标用户为企业工作场景,可后续加入 SSO。

同时考虑提供应用级锁(Face ID/Touch ID/PIN)用于打开应用或查看收据——尤其是共享设备情形。

保留与删除作为产品功能

使隐私控制可见:

  • 导出后删除:允许用户下载报表并移除底层数据。
  • “删除账户”应在明确时限内真正移除收据、OCR 文本和备份。
  • 可选的保留规则(例如保留 90 天或 7 年)。

在设置中清晰展示这些选项能减少支持工单并提高用户信任。

分类、货币与智能建议

良好的组织能把一堆随手记录变成可用的报表。对费用记录应用来说,通常意味着三件事:一个不会碍事的分类模型、足够应对旅行的货币处理,以及轻量的建议减少重复输入。

一个可扩展的简单分类模型

以一套简短的固定列表开始(例如:餐饮、交通、住宿、办公、娱乐、手续费)。将其控制在约 10–12 个以内以避免选择过载。

然后允许自定义分类作为补充。两个实用规则:

  • 允许用户重命名/删除自定义分类。
  • 不允许仅因大小写不同而重复(“Taxi” vs “taxi”)。

通过轻量规则实现智能建议

你不需要复杂的“AI”就能让应用显得聪明。构建一个小型规则层:

  • 记录高频商家并为该商家建议上次使用的分类。
  • 在选择器顶部展示最近使用的分类。
  • 如果用户更改了分类,询问一次是否“下次记住”。

这能在不强制自动化的前提下减少输入时间。

多币种基础处理(不过度复杂)

同时存储:

  • 原始金额 + 原始货币(收据上显示的)
  • 换算金额 + 基础货币(报表使用)

换算可使用每日汇率(对 MVP 足够)。显示所用汇率和日期以免总额看起来莫名其妙。

税金/VAT 字段:仅在用户有需求时提供

除非你从一开始就针对报销业务,否则把 VAT 设为可选:如一个“含税?”开关或隐藏在“添加详情”后的单独“税”字段。

符合真实问题的搜索与过滤

让用户轻松回答“上个月我在 X 上花了多少?”支持按日期范围、分类、金额、商家过滤,并提供在备注与商家名中的简单关键词搜索。

导出与简单费用报表

捕获费用只是工作的一半——最终你需要把东西交给会计、上传到报销平台或保存以备查。导出是让费用记录应用变得实用的关键。

要支持的导出格式(现在 vs 以后)

从易于生成且被广泛接受的格式开始:

  • CSV 用于电子表格和会计工具(最通用的选项)。
  • PDF 概要 用于干净、只读的报告,便于邮件或上传。

如果计划日后与工具集成(例如会计平台),设计导出数据模型时保持向后兼容,以便在添加集成时不必改变条目存储方式。

简单的“费用报告”流程

保持报表体验可预测:

  1. 选择范围(本月、上月、自定义日期)
  2. 复核(按分类汇总、缺少收据、未分类项)
  3. 导出/分享(保存到文件、发邮件、分享表单)

如应用支持项目/客户,可提供过滤,但不要强制要求。

收据:链接 vs 嵌入附件

决定收据如何随报表一并发送:

  • CSV + 收据链接: 每条目包含一个 URL 或本地文件引用,文件更轻。
  • 带嵌入缩略图的 PDF: 更适合审计,但文件更大。

无论选择哪种方式,都要清楚标注缺失收据的项。

有组织的文件命名约定

采用一致的命名方式,例如:

  • expenses_2025-01-01_to_2025-01-31_jordan.pdf
  • expenses_2025-01_project-acme.csv

审计友好的字段要包含

即便是轻量应用也应导出:

  • 创建时间编辑时间
  • 来源(手动或 OCR)
  • 货币、分类、商家(如有)和备注

这些信息能减少对“何时被录入、来源为何”的来回追问。

针对真实环境的测试

在真实设备上测试
提前部署并托管应用,让离线、上传和导出的测试更真实。

费用记录应用在那些混乱时刻成败:光线差、无信号、走路时只剩一只手。测试应反映这些现实,而不是仅仅覆盖“理想路径”。

基本功能测试

从一小组保护核心流程(捕获 → 保存 → 同步 → 导出)的测试开始:

  • 表单验证: 必填字段(金额、日期)、合理范围、负值、货币格式和“未知商家”处理。
  • 离线队列: 在无连接状态下创建/编辑/删除费用并确认它们被本地存储且立刻在 UI 中显示。
  • 同步重试: 模拟网络中断并验证退避策略、冲突处理(同一条目被两端编辑)和“上次同步”状态。
  • OCR 回退: 当 OCR 失败时,确保用户仍可手动保存,且部分 OCR 结果可编辑。

会破坏相机功能的设备与环境测试

在几台真实设备上手动测试(而非仅一台旗舰机):

  • 光线差 与收据反光
  • 抖动拍摄(走动、单手)和对焦延迟
  • 飞行模式 与低信号区域(包括 Wi‑Fi ↔ 蜂窝切换)
  • 存储不足 警告与受限内存场景

用户能感知到的性能检测

度量几项“感受”时长并在版本间保持一致:

  • 应用启动时间到捕获屏
  • 相机启动时间与首帧清晰时间
  • 从**点“保存”**到在列表中看到该费用的时间(即便同步稍后完成)

崩溃上报与基础分析

尽早接入崩溃上报以捕捉设备特定问题。为关键步骤(打开捕获、拍收据、OCR 成功/失败、同步成功/失败)添加轻量事件追踪,避免记录敏感文本或完整收据图片。

进行小范围内测并附带简短调查

邀请 10–30 位真实会出差或提交费用的人参与。把反馈结构化:

  • 最近一次捕获觉得慢或困惑是什么场景?
  • 他们是否信任离线模式?
  • 收据捕获或 OCR 失败的频率如何?
  • 他们导出了什么,导出的报表是否可用?

上线、引导与迭代计划

流畅的上线并非包含所有功能——而是让首次体验在一分钟内证明应用价值:记录一笔费用、附上收据并能在应用内找到它。

上线清单(要随版本一起发布的内容)

提前准备商店信息与合规细节,避免上线前一周赶工:

  • 应用商店元数据: 简洁标题/副标题、关键词化的描述和一句价值主张(例如:“快速保存收据并导出费用报表”)。
  • 截图: 首图展示捕获流程(金额 → 分类 → 收据),其次展示离线模式和导出功能。
  • 隐私说明: 解释你收集什么(邮箱、设备 ID、分析数据)、哪些数据留在设备上、以及如何处理收据照片。
  • 支持基础: 简短 FAQ、联系邮箱与简单的“报告问题”表单。

引导(3–5 屏,最多)

保持引导短小且以行动为导向:

  1. 展示 快速捕获(金额、分类、可选备注)。
  2. 在需要时请求必要权限(在“添加收据”时请求相机,而不是一次性全部请求)。
  3. 提供一个示例费用供用户编辑,然后提示记录第一笔真实费用。

定价选项

选定一种模型并保持明晰:

  • 免费层: 手动录入 + 限量每月导出。
  • 订阅制: 无限收据/OCR 与云同步。
  • 团队套餐: 共享工作区、审批流程、管理员控制。

(若用 Koder.ai 构建,这些层级便于分阶段实现:先免费 MVP,再把高级功能如 OCR、云同步和团队工作区放到 Pro/Business 中,同时为企业提供定制合规部署方案。)

上线后真正重要的指标

追踪能反映用户价值的行为:

  • 留存率: D1/D7/D30
  • 每周每活跃用户记录的费用数
  • 导出使用率: 有多少用户生成报表(及频次)

迭代路线图

以真实使用为优先级依据:

  • 快捷方式: 小组件、“重复上次费用”、快速分类芯片
  • 集成: 会计工具、邮件转发、共享驱动器
  • 审批流程: 提交 → 审核 → 报销
  • 自动化: 更智能的分类建议、里程、周期性费用

常见问题

随手记费用应用的目标是什么?

专注于速度与可信赖:用户应该能够在几秒钟内保存一笔费用,即使细节很混乱。

一个稳妥的 MVP 通常支持:

  • 快速捕获(金额、商家、分类、简短备注)
  • 可选的收据照片
  • 离线保存并在稍后同步
  • 简单的搜索/过滤和基础汇总
  • 导出(CSV 和/或 简单 PDF)
MVP 的捕获流程在现实中应优化哪些方面?

为“单手、没时间、光线差、信号不稳”的场景设计。

实用的 MVP 选择:

  • 一键进入(小组件/快速操作)
  • 默认日期/时间 = 现在
  • 最少必填字段(可选字段可跳过)
  • 大触控目标且保存按钮易于触达
  • “先保存,后编辑”,配合一个 待审核 列表
MVP 中哪些字段应为必填,哪些应为可选?

一个合理的最小集合是:

  • 金额(清楚显示货币)
  • 商家
  • 分类(小型入门列表)
  • 日期
  • 备注(例如“客户午餐”之类的简短说明)
  • 照片(可选附件)

除必要项外其它都应为可选,确保用户能快速保存。

如何在不减慢用户速度的前提下处理分类?

先用一套简短、熟悉的分类(大约10–12个)以避免选择过载。

随后把自定义分类作为“逃生舱”加入:

  • 允许重命名/删除
  • 防止仅大小写不同的重复项
  • 保持“未分类/待审核”以便快速保存
如何设计收据拍照使其感觉顺手?

把收据设为可选并尽量无摩擦:

  • 快速相机启动、大的快门按钮、快速重拍
  • 边缘/取景提醒和简单反馈(例如“太暗”)
  • 立即保存照片,然后在后台处理

把 OCR 当作后续增强或后台步骤——不要阻塞保存。

我应该使用设备端 OCR 还是服务器端 OCR?

本地 OCR:

  • 优点:隐私更好、支持离线、不需上传延迟
  • 缺点:在旧设备或模糊照片上效果可能较差

服务器端 OCR:

  • 优点:结果更一致、便于集中改进
  • 缺点:需要网络、增加上传时间并带来隐私/合规问题

实用折中是混合:先尝试本地 OCR,在线并且用户同意时提供服务器 OCR。

如何实现离线优先行为和可靠的同步?

把离线视为默认:先本地保存,后同步

关键做法:

  • 在点击 保存 时立即持久化费用记录
  • 为待上传/待更新项保留一个同步队列
  • 在后台上传收据图片并支持可续传
  • 显示清晰状态:已排队同步中…失败 + 重试
处理同步冲突和删除的最简单方法是什么?

保持可预测并降低摩擦:

  • 最后写入优先(Last-write-wins) 对单人使用场景通常足够
  • 使用 软删除(标记为已删除、同步后再统一清理)
  • 如果预计多设备/多人频繁编辑,考虑 字段级合并(例如:分类变更不应覆盖另一端编辑的备注)
如何在不增加摩擦的情况下处理权限和隐私?

在使用场景点请求权限并用通俗语言解释:

  • 用户点击“扫描收据”时才请求 相机 权限
  • 用户选择“从相册上传”时才请求 照片/媒体库 权限
  • 默认避免请求 位置(可在后续提供选择加入)

此外可考虑应用级解锁(Face ID/Touch ID/PIN),以防收据内容敏感。

MVP 应包含哪些费用报表导出选项?

MVP 应优先支持用户实际会用到的格式:

  • CSV(通用的表格/账务工具格式)
  • PDF 概要(便于邮件或上传的只读报表)

导出应包含审计友好的字段:

  • 创建/编辑时间戳
  • 来源(手动或 OCR)
  • 货币、商家、分类、备注

决定收据随报表是以链接(更轻量)还是嵌入缩略图(审计友好但文件更大)的方式传递。

Related posts