开源记账 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/...

相关推荐
一次旅行1 小时前
DeepSeek‑V4.1‑Flash‑1017完整解读:模型升级+Search/Fetch搜索API开放,Agent开发者要注意哪些坑
前端·网络·人工智能
原则猫9 小时前
UDP 到底怎么实现可靠的
前端
Java后端的Ai之路9 小时前
14、ReactJS - 路由(Router)
前端·react.js·状态模式
裕晟资质规划11 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
ShineWinsu11 小时前
对于JavaScript:JavaScript基础语法的解析
开发语言·前端·javascript·面试·web·基础语法·循环
月夏11 小时前
Vue3 转 React:18 项对照表 + 5 个必踩的坑(附 7 天上手路线)
前端
广州华水科技11 小时前
单北斗GNSS位移监测系统的应用与维护解析
前端
梦曦i12 小时前
uni-storage 0.1.0 发布:TTL过期管理+多实例隔离
前端·storage·uni-app x
猫头_12 小时前
AI 流式传输工程指南:模型吐出半截 JSON,前端如何边收边渲染?
前端·javascript·llm
console.log('npc')13 小时前
第 1 章 项目概述与环境搭建
前端·人工智能·大模型