【生活娱乐】Remember App — 记得每一个重要日子

一、创意介绍

Remember App 是一款干净、纯粹、无广告的 Android 提醒工具。它围绕"重要日子"这个核心场景,提供了生日、纪念日、出差、证件到期、账单缴费、自定义等六种提醒类型,支持提前通知、每年自动重复、内置中国法定节假日,帮你用最小的成本记住那些不该忘记的日子。

二、创意背景

说实话,这个项目的出发点特别朴素——我自己就是一个记性很差的人。

去年一个好朋友过生日,我完全忘得一干二净,第二天看到朋友圈才想起来,赶紧补了一句"迟到的祝福",那种尴尬真的不想再经历第二次。更离谱的是有一回身份证快到期了,我居然是在机场过安检的时候被安检员提醒才知道的,差点误了飞机。

后来我仔细观察了一下,发现身边几乎每个人都有这种"忘记重要日子"的经历:水电网费忘记缴、结婚纪念日当天才想起来、驾照过期了还在开……生活节奏越来越快,光靠人脑去记这些事实在太难了。

市面上的提醒 App 也不是没有,但用了一圈下来,要么塞满广告、要么功能臃肿得像个项目管理工具、要么强制注册账号收集隐私。我就想找一个简简单单的——打开就能看到接下来有什么重要日子、添加提醒不超过半分钟、不推送广告不偷数据的工具。找不到满意的,那就自己做一个吧。

于是就有了 Remember App。它只做一件事:帮你在正确的时间想起正确的事。

三、创意目标与价值

Remember App 要解决的核心问题是:在信息过载的生活中,如何用最简单的方式帮用户记住那些不容错过的重要日子。具体来说,它带来三个实实在在的价值:

1、六大类型覆盖全场景,三秒完成添加。无论是亲友生日、恋爱纪念日、出差出发日、证件到期日、账单缴费日,还是任何你想记住的自定义事项,选好类型、填上标题和日期就能搞定。每种类型都有专属的颜色和图标,列表里一眼就能区分。

2、智能提前提醒 + 逐年自动重复,一次设置永远省心。不想等到当天才被动想起?每个提醒都可以设置提前 0 到 30 天开始提示,比如生日提前 3 天提醒还有时间准备礼物,证件到期提前 30 天提醒从容去办理。生日和纪念日勾上"每年重复",今年过了自动滚动到明年,不用每年手动重设。

3、内置中国法定节假日,开箱即用。App 预置了元旦、春节、清明、劳动节、端午、中秋、国庆、除夕共八个法定节假日,你可以随时关闭不需要的、添加自定义的(比如公司周年庆、家庭聚会日),关闭的默认节假日也可以一键全部恢复。

跟市面上的提醒类 App 相比,Remember App 的差异化非常明显。具体对比一下:

广告干扰——市面大多数提醒 App 都带有开屏广告或列表广告,Remember App 零广告,界面干干净净;
隐私安全——很多 App 强制注册账号、上传数据到云端,Remember App 完全离线运行,所有数据存在手机本地,不需要任何网络权限;
安装包体积——商业 App 动辄几十上百 MB,塞了大量跟提醒无关的功能,Remember App 不到 5MB,极致轻量;
操作复杂度——很多工具型 App 功能堆砌、入口深、学习成本高,Remember App 打开就三个 Tab(提醒 / 添加 / 我的),没有任何多余的概念;
节假日支持——市面上很少有提醒 App 内置中国法定节假日,Remember App 预置 8 个法定节假日并支持开关和自定义;
开源免费——商业 App 核心功能往往要付费订阅,Remember App 完全开源(MIT License),所有功能永久免费。

说白了,市面上不缺一个功能强大的提醒 App,但缺一个安静、可信、用完即走的提醒工具。Remember App 就是后者。

四、实现路径

技术路线:

Remember App 是一款纯原生 Android 应用,使用 Kotlin 语言开发,UI 全部基于 Jetpack Compose 构建,架构上采用 MVVM + Repository 模式。下面按模块介绍一下技术选型和设计思路:

1、UI 层——全部使用 Jetpack Compose 声明式 UI + Material 3 设计语言,主色调为温暖的橙色,在 Android 12 以上设备自动跟随系统深色/浅色模式。整个应用只有一个 Activity,内部通过 Navigation Compose 管理底部三 Tab 导航:提醒列表、添加提醒、个人中心。每种提醒类型对应独立的卡片样式和专属配色(生日粉、纪念日蓝、出差绿等),在列表中一目了然。

2、数据层——Room 数据库设计了两张核心表:reminders(提醒事项)和 holidays(节假日)。reminders 表涵盖标题、类型、目标日期、提前提醒天数、是否每年重复、备注等字段;holidays 表用 is_default 字段区分预置节假日和用户自定义节假日,支持单独开关和删除控制。DAO 层所有查询均返回 Flow 类型,UI 层通过 StateFlow 收集,数据变化时界面自动刷新。

3、智能分组算法——这是整个项目交互体验最核心的设计。ReminderViewModel 在加载提醒列表时,不是简单地按日期排序,而是计算每一条提醒的"通知窗口期"(目标日期减去提前提醒天数),然后跟今天的日期做比较:已进入窗口期的归入"最近提醒"分组并高亮显示剩余天数,尚未进入窗口期的归入"接下来"分组。这样用户打开 App 第一眼看到的就是当前最需要关注的事项,不需要在一堆提醒中自己筛选。

4、自愈式崩溃处理——RememberApp 的 Application 类注册了一个全局 UncaughtExceptionHandler,专门捕获数据库相关的崩溃(比如 Room 数据库损坏、版本迁移失败等)。一旦检测到这类崩溃,自动删除损坏的数据库文件,下次启动时 Room 会用全新的数据库重新开始,避免用户陷入"打开就闪退"的死循环。这个细节在日常使用中几乎感知不到,但关键时刻能救命。

5、节假日预置与一键恢复——AppDatabase 使用 RoomDatabase.Callback 的 onCreate 回调,在数据库首次创建时通过原生 SQL 的 INSERT OR IGNORE 批量写入 8 个中国法定节假日,标记为 is_default = 1。用户只能开关默认节假日而不能删除它们,自定义节假日则可以自由增删。如果用户关掉了很多默认节假日想恢复,MineScreen 提供了一键全部恢复的功能。

整个项目大约 20 个 Kotlin 源文件,代码结构紧凑清晰。没有引入 Hilt 等 DI 框架,而是通过 Application 类手动持有 Repository 实例,ViewModel 通过 (application as RememberApp) 获取依赖——轻量且直观,非常适合学习 Compose 实战的新手参考。

五、Demo 展示

1、提醒列表页——展示"最近提醒"和"接下来"两个分组,每张卡片上显示类型图标、标题、日期和剩余天数。已进入通知窗口期的事项以主色调高亮。

2、添加提醒页——展示 3 列 2 行的六种提醒类型卡片网格(各有专属颜色和图标),以及选中类型后的表单界面:标题输入框、日期选择器、提前天数滑块(0-30 天)、每年重复开关、备注输入框。

3、节假日管理页——展示内置节假日列表(含开关状态),底部展示一键恢复按钮和使用提示卡片。

4、深色模式效果——展示 App 在深色模式下的配色效果,主色调橙色在暗色背景下依然温暖醒目。

5、添加自定义节假日——展示"添加节假日"弹窗,包含名称输入和日期选择。

Demo APK 下载地址:https://github.com/cwh1234/remember_app/releases
下载 APK 即可在 Android 设备上直接安装体验。
系统要求:Android 8.0 (API 26) 及以上。

六、代码仓库

Demo 链接:https://github.com/cwh1234/remember_app

欢迎大家下载体验。

可以加一个月视图,对于重要的日子,比如高考,婚礼之类的,可以加一个多次提醒,比如(30/21/14/7/3/1)之类的,毕竟涉及隐私,可以加一个密码锁。已投票,相互支持呀~

收到!谢谢支持

1 个赞

如果能有一个明显的日历表,然后选中对应的日期,我就能够添加对应的待办事项,然后设置提醒什么的,感觉更方便一些,还可以直接总览未来全部的待办事项。

收到,谢谢您的支持,我将在下个版本进行修改