SenseofGain Calendar 是一款注重隐私保护和用户体验的本地复盘工具。通过日历视图、三行极简复盘模板和正向表情系统,帮助用户以最低负担记录每日成果与情绪,培养正向思维习惯。
- 🔒 完全本地化 - 无网络请求,数据完全掌控在你手中
- ⚡ 极简高效 - 1分钟完成每日复盘,降低使用门槛
- 😊 正向引导 - 8款正向表情与积极短句,强化获得感
- 🎨 现代设计 - Material 3 设计语言,流畅的交互体验
- 年月自由切换(支持点击箭头或左右滑动)
- 日期点选查看或编辑复盘记录
- 已复盘日期智能标注(圆点标记)
- 表情替换日期数字显示
- 当前日期高亮提示
采用固定三行输入模板,降低思考负担:
- 今日完成3件事 - 记录具体行动
- 1个小成果/反馈 - 捕捉正向反馈
- 今日心情/感受 - 觉察情绪状态
特色功能:
- 每个输入框配备快捷短语
- 自动保存与更新机制
- 支持记录修改和删除
提供 8 款精心挑选的正向表情:
😊 💪 🎉 ⭐ 🌈 ✨ 🔥 💖
- 每个表情关联积极引导短句
- 长按日期快速选择表情
- 表情自动填充心情引导语
- Room Database 本地持久化
- 完全离线运行,零网络请求
- 数据隐私安全,无第三方收集
- 完整的 CRUD 操作支持
| 工具/环境 | 版本要求 |
|---|---|
| Android Studio | Hedgehog (2023.1.1)+ |
| JDK | 11+ |
| Android SDK | API 26+ (Android 8.0+) |
| Kotlin | 2.1.20+ |
-
克隆项目
git clone https://github.com/liulc-tech-star/SenseofGainCalendar.git cd SenseofGainCalendar -
打开项目
- 启动 Android Studio
- 选择
File → Open并导航到项目目录 - 等待 Gradle 自动同步完成
-
运行应用
- 连接 Android 设备或启动模拟器(API 26+)
- 点击工具栏的
Run按钮(▶️ ) - 选择目标设备并等待应用安装
应用首次启动会展示隐私政策对话框,点击 "同意并继续" 进入主界面。
- 在日历视图中点击目标日期
- 填写三行复盘内容(可使用快捷填充)
- 点击 "选择心情表情" 选择当日心情
- 点击 "保存复盘" 完成记录
- 点击带有标记的日期查看已保存的复盘内容
- 修改内容后点击 "更新复盘" 保存更改
- 点击右上角删除图标可删除记录
- 方法一:点击 "选择心情表情" 按钮
- 方法二:长按日历中的日期
- 选择表情后会自动填充对应的引导短句
- 点击箭头:使用页面顶部的左右箭头
- 滑动切换:在日历区域左右滑动
🔹 开发语言 Kotlin 100%
🔹 UI 框架 Jetpack Compose + Material 3
🔹 本地数据库 Room Database 2.7.0
🔹 架构模式 MVVM (Model-View-ViewModel)
🔹 异步处理 Kotlin Coroutines + Flow
🔹 日期处理 Java Time API (LocalDate)
🔹 依赖管理 手动注入(轻量化)
com.example.period_app_01/
│
├── 📁 data/ # 数据层
│ ├── ReviewRecord.kt # 复盘记录实体类
│ ├── ReviewRecordDao.kt # Room DAO 接口
│ ├── ReviewRepository.kt # 数据仓库层
│ ├── DatesDatabase.kt # Room 数据库配置
│ └── DatesConverter.kt # 日期类型转换器
│
├── 📁 viewmodel/ # 视图模型层
│ └── ReviewViewModel.kt # 复盘功能 ViewModel
│
├── 📁 ui/ # UI 展示层
│ ├── 📁 components/ # 可复用 Compose 组件
│ │ ├── CalendarComponent.kt # 日历视图组件
│ │ ├── ReviewInputComponent.kt # 复盘输入组件
│ │ └── EmojiPickerComponent.kt # 表情选择组件
│ │
│ ├── 📁 screens/ # 应用界面
│ │ └── ReviewCalendarScreen.kt # 主界面(日历+复盘)
│ │
│ └── 📁 theme/ # Material 主题配置
│ ├── Color.kt # 颜色定义
│ ├── Theme.kt # 主题配置
│ └── Type.kt # 字体排版
│
└── MainActivity.kt # 应用程序入口
// Jetpack Compose
androidx.compose.ui:ui
androidx.compose.material3:material3
androidx.activity:activity-compose
// Room Database
androidx.room:room-runtime:2.7.0
androidx.room:room-ktx:2.7.0
// Kotlin Coroutines
org.jetbrains.kotlinx:kotlinx-coroutines-android- 无冗余功能和侵入式广告
- 简洁直观的用户界面
- 流畅的操作体验(60fps+)
- 点击即可记录,无复杂流程
- 快捷短语降低输入成本
- 1分钟完成日常复盘
- 全部数据本地存储
- 零网络请求,零数据上传
- 不收集任何用户信息
- 精选8款正向表情符号
- 积极的引导短句设计
- 强化每日获得感体验
✅ 日历视图与交互系统
✅ 极简三行复盘模板
✅ 正向表情选择功能
✅ Room 本地数据存储
✅ 快捷填充辅助系统
✅ 完整的 CRUD 操作
- 数据备份与恢复功能
- 导出功能(支持 TXT/PDF)
- 扩展表情库(自定义表情)
- 统计分析仪表盘(情绪趋势、完成事项统计)
- 深色模式主题
- 桌面小部件(Widget)
- 每日提醒通知
| 项目 | 说明 |
|---|---|
| 系统要求 | Android 8.0 (API 26) 及以上版本 |
| 数据安全 | 记录仅本地存储,卸载应用会清空数据 |
| 权限需求 | 仅需存储权限,无其他敏感权限 |
| 网络依赖 | 完全离线运行,无需网络连接 |
⚠️ 数据备份提醒:当前版本不支持自动备份,建议定期手动导出数据(功能开发中)
微同学
- 📧 Email: liulc_tech@outlook.com
- 🐙 GitHub: @liulc-tech-star
本项目采用 MIT License 开源协议。
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
如果这个项目对你有帮助,欢迎:
- ⭐ Star 本项目
- 🐛 提交 Bug 反馈
- 💡 分享使用体验
- 📢 推荐给朋友
用正向思维,记录每一天的获得感 ✨
Made with ❤️ by 微同学