开源记账 App 一个月迭代:从 v1.11 到 v2.2,暗黑模式、标签系统、预算管理全面升级

大家好,我是蜜蜂记账的作者。距离上次分享已经一个月了,这段时间疯狂迭代,发布了 24 个版本,被群友戏称为「日更博主」😂

今天来分享一下这一个月的更新内容和技术实现。

项目简介

蜜蜂记账是一款开源的个人记账 App,核心特点是数据自主可控------支持 iCloud、Supabase、WebDAV、S3 协议等多种云同步方案,数据完全掌握在用户自己手中。

一个月更新亮点

1. 暗黑模式

采用「纯黑背景 + 主题色边框」的设计方案:

  • OLED 友好,省电护眼
  • 所有页面、弹窗、键盘完全适配
  • 跟随系统或手动切换

技术实现

  • 使用 Design Token 系统统一管理颜色
  • BeeTokens.isDark(context) 判断当前模式
  • 动态颜色 getter 自动适配明暗主题

2. 标签系统

比分类更灵活的归类方式:

  • 支持多标签
  • 自定义颜色
  • 标签详情页统计

数据库设计

sql 复制代码
-- 标签表
CREATE TABLE tags (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  color TEXT,
  created_at DATETIME
);

-- 交易-标签关联表
CREATE TABLE transaction_tags (
  transaction_id INTEGER,
  tag_id INTEGER,
  PRIMARY KEY (transaction_id, tag_id)
);

3. 预算管理

  • 月度总预算
  • 分类预算
  • 实时进度追踪

4. 周期记账

固定收支自动记账:

dart 复制代码
enum RecurringPeriod {
  daily,   // 每日
  weekly,  // 每周
  monthly, // 每月
  yearly,  // 每年
}

5. iCloud 云同步

iOS 用户零配置即可使用:

  • 使用 CloudKit 原生 API
  • 增量同步,节省流量
  • 多设备自动同步

6. S3 协议支持

新增对 S3 协议的支持:

  • Cloudflare R2(推荐,10GB 免费)
  • AWS S3
  • MinIO(自建)

7. 账户独立改造(v2.0)

这是 2.0 版本最核心的改动:

  • 每个账户独立追踪余额
  • 账户间转账
  • 账户详情页

8. 二级分类

  • 支持父子分类结构
  • 可选平铺或层级模式

架构设计

Repository 模式

采用模块化 Repository 架构,支持无缝切换数据源:

bash 复制代码
lib/data/repositories/
├── base_repository.dart          # 抽象基类
├── local/                        # 本地实现(Drift)
│   ├── local_repository.dart
│   ├── local_ledger_repository.dart
│   └── ...
└── cloud/                        # 云端实现(Supabase)
    ├── cloud_repository.dart
    └── ...

状态管理

使用 Riverpod 进行状态管理:

dart 复制代码
// UI 层使用 Provider
final ledgers = ref.watch(ledgersProvider);

// Provider 内部调用 Repository
final repo = ref.watch(repositoryProvider);
final data = await repo.getAllLedgers();

下载体验

写在最后

一个月 24 个版本,确实有点肝。但开源项目最大的乐趣就是看到用户的反馈和社区的成长。

欢迎体验、提 Issue、贡献代码!

GitHub : github.com/TNT-Likely/...

相关推荐
前端摸鱼匠28 分钟前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
REDcker1 小时前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
donecoding2 小时前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
风骏时光牛马2 小时前
Raku正则匹配与数据批量处理实操案例
前端
nbwenren2 小时前
2026实测:Gemini 3 镜像站视觉能力实践——拍照原型图,一键生成 HTML+CSS 代码
前端·css·html
Lee川3 小时前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端
jinanwuhuaguo3 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
广州华水科技3 小时前
深度测评2026年单北斗GNSS位移监测系统推荐,与高口碑变形监测设备一同引领行业新风尚
前端
Alice-YUE4 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript