Subscription Reminder v1.0 — 交付说明
按《App 需求清单 v1》第 6 名「订阅到期提醒(个人订阅管家,创意库 i219)」开发的第一版。
产物:~/workspace/your_files/SubscriptionReminder-v1.0.apk(15.6 MB,debug 签名,可直接装)
源码:~/workspace/subscription-reminder-android/
- 包名:
com.subscriptionreminder.app
- 版本:versionCode 1 / versionName 1.0,minSdk 24 / targetSdk 34
- 技术栈:Kotlin + Jetpack Compose 纯原生(无 WebView),SQLite 本地存储,英文 UI
- 权限(aapt 实测):仅
POST_NOTIFICATIONS + RECEIVE_BOOT_COMPLETED,未申请 INTERNET——"纯本地、隐私优先"在权限层面可验证,不是文案口号
需求复核结论(开工前搜索复核)
洼地判断未反转,照计划开工;但竞争密度比清单估计的更高,差异化必须打得更狠。
- 需求侧被 2026 年多篇评测反复验证:美国家庭平均 8.2 个订阅、实际月花约 $219 而自估只有 $86(ReSubs 评测引用的数据);"不绑卡/隐私优先"已是订阅管理类里一个被单独成篇评测的明确品类(getfinny、subnesio、Medium 隐私向横评等),2026 年 4 月 Plaid 数据事件又给"不绑银行"添了一把火。Rocket Money 必须绑卡 + $6–12/月,是最主要的反面参照。
- 供给侧比清单的「中」同质化判断更挤:隐私向竞品已有 SubScale、ReSubs、Finny、RecurStop 等,但其中多数是 iOS 优先(Bobby、SubTrack'd、Chronicle 均为 iOS)或 Web 产品;Android 原生、纯离线、无账号的直接竞品主要是 Tilla、Subby、ReSubs。因此本版把差异化落在三件竞品结构上难跟的事:① 零联网权限(连备份/同步都不做);② 无广告、无埋点;③ 核心功能(登记+提醒+年度总花费)全免费、无条数上限。文案上首页顶条、汇总页、About 页三处都把 "No bank login · 100% offline · Private by design" 打在最前面。
功能清单(第一版只做这 2 个)
- 手动登记订阅(纯本地):名称、金额、币种(20 种)、周期(周/月/季/年)、下次扣费日(日期选择器)、提醒提前天数(0/1/3/7 天)、备注。列表按扣费日排序,带"今天/明天/in N days/overdue"状态标识;详情页可编辑、删除,以及「Mark as charged」一键把扣费日滚动到下一周期。绝无绑卡、银行登录、账号注册入口。
- 扣费前提醒 + 年度总花费汇总:
- 提醒:每条订阅一个本地闹钟,扣费前 N 天上午 9:00 推送(AlarmManager 非精确闹钟,不申请精确闹钟权限);数据变更、App 启动、设备重启后自动重排,自带"自愈";Android 13+ 未授权通知时首页有横幅引导开启。
- 汇总页:按币种分组的年度总花费(大字展示)+ 月均 + 未来 30 天内扣费清单 + 按年成本排序的明细。跨币种不做汇率换算,分币种列示并在页脚明说。
未做(按 v1 范围砍掉)
订阅制付费墙 / 条数上限、云同步与账号、CSV 导入导出、试用期(trial)状态管理、涨价提醒、多语言 UI、桌面小部件、release 签名包。
已知问题
- 仅完成编译打包 + APK 结构/权限校验(环境无模拟器/真机),未做真机实测;建议首验一条链:新增订阅(提醒设 0 天、扣费日设明天)→ 等次日 9:00 看通知,或把扣费日改近后重启手机验证重排。
- 年度总花费是按"当前金额 × 年内扣费次数"的估算,不处理月中起订的按比例折算;跨币种不换算(有意为之,避免假精确)。
- 非精确闹钟在强省电 ROM 上可能有分钟级漂移;提醒是天粒度设计,可接受。
- 扣费日过期后不会自动滚动(避免误滚),列表会标 overdue,需用户点「Mark as charged」或改日期——About 页已写明这一交互。