一个纯本地化的安卓应用:记录冰箱里的食物并做过期提醒。数据全部保存在手机本地(Room 数据库),无服务器、无账号、无网络权限,隐私零顾虑。
当前版本:v1.0.1
- 食物登记:记录冰箱中的食物名称、数量、存放日期与到期日期
- 名称智能匹配:输入名称时自动匹配内置保鲜建议数据集,带出建议保存期限
- 到期日历选择:到期日期支持日历式选择,减少手动输入
- 过期状态展示:列表按新鲜 / 临期 / 已过期区分展示
- 保鲜建议:内置常见食物的保鲜建议数据
- 最新版 APK:前往 Releases 页面 下载。
- 也可直接下载仓库内的
download/app_v1.0.1.apk(与最新 Release 同一文件)。
系统要求:Android 8.0(API 26)及以上。
- Kotlin + Jetpack Compose(Material 3)
- Room 2.6.1 本地数据库
- WorkManager 2.9.1 后台提醒
- 手工依赖注入(无 Hilt)
- minSdk 26 / target & compileSdk 34
app/src/main/java/com/scm/myrefri/
├── MyRefriApp.kt # 入口:依赖装配、通知渠道、提醒调度
├── MainActivity.kt # 唯一 Activity + Navigation Compose
├── reminder/ # WorkManager 每日过期检查 + 本地通知
├── domain/ # 纯 Kotlin 领域层(过期判定等纯函数)
├── data/ # Room 实体/DAO + 仓库层
└── ui/ # Compose 界面 + ViewModel(StateFlow)
依赖方向:ui → domain ← data;领域层不依赖任何 Android 类。
环境要求:JDK 17、Android SDK(compileSdk 34)。
# 构建前需导出工具链环境变量(按本机路径调整)
export JAVA_HOME=<你的 JDK 17 路径>
export ANDROID_HOME=<你的 Android SDK 路径>
export PATH=$JAVA_HOME/bin:$PATH
./gradlew assembleDebug # 出 APK:app/build/outputs/apk/debug/
./gradlew testDebugUnitTest # 运行单元测试- Issue 欢迎:发现 bug、有功能建议,欢迎提交 Issue。
- 欢迎 Fork:任意 Fork 修改自用,均受 MIT 协议许可。
- 暂不接受 PR:本仓库由作者个人维护,暂不支持 Pull Request,敬请谅解。
本项目基于 MIT License 开源,可自由使用、修改与分发。