V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
shuaixiaoxiao
V2EX  ›  分享创造

做了个开源记账 App,支持自建 Supabase/WebDAV 同步

  •  3
     
  •   shuaixiaoxiao ·
    TNT-Likely · 1 天前 · 2024 次点击

    用了 10 年某记账 App ,越来越多广告和付费功能,索性自己做了个替代品。

    核心特性

    • 数据自主:支持自建 Supabase 或 WebDAV 服务器
    • 离线优先:本地 SQLite ,无网也能用
    • 完全开源:MIT License ,代码全公开
    • 无广告无追踪:零数据收集

    技术栈

    • Framework: Flutter 3.27
    • 状态管理: Riverpod
    • 数据库: Drift (SQLite ORM)
    • 云同步: Supabase / WebDAV
    • 支持平台: Android / iOS

    功能

    • 多账本管理
    • 分类统计和图表
    • CSV 导入导出
    • 自建云同步( Supabase/WebDAV )
    • 8 种语言支持

    为什么做这个?

    主要是想要一个纯粹的记账工具:

    • 不被广告打扰
    • 数据不被第三方控制
    • 不担心 App 突然跑路
    • 功能简单够用就行

    链接

    目前已经全家在用( 4 人),运行稳定。

    欢迎试用和提意见,感谢 🙏

    第 1 条附言  ·  1 天前

    🎉 v1.5.3 更新发布

    感谢大家的关注和反馈!刚刚发布了新版本,主要更新:

    支持支付宝/微信账单导入

    • 新增账单类型选择器(通用CSV/支付宝/微信)
    • 支持 XLSX 格式导入(微信账单)
    • 智能表头检测,自动识别字段映射
    • 新增日语、韩语界面翻译

    📥 下载地址:https://github.com/TNT-Likely/BeeCount/releases/latest

    感谢 @*桥 成为第一位捐赠者(¥12),iOS TestFlight 众筹进度 1.67%

    有任何问题欢迎反馈!

    第 2 条附言  ·  1 天前

    🎉 重大公告:筹款目标达成!iOS 版本即将到来

    📢 好消息

    非常激动地向大家宣布:蜜蜂记账的 iOS TestFlight 筹款目标已经达成!

    💰 筹款情况

    • 🎯 目标: $99(约 ¥720,Apple 开发者账号年费)
    • 💰 已筹集: ¥732(约 $101)
    • 📈 进度: 101.67% ✅

    感谢所有支持者的慷慨捐赠!

    🙏 特别感谢

    • *桥 - ¥12 - 2025-10-27
    • *睿 - ¥720 - 2025-10-27 🎉

    特别感谢 *睿 的大额捐赠,让我能够立即启动 iOS 版本的开发和发布!

    60 条回复    2025-10-28 19:00:29 +08:00
    xinru
        1
    xinru  
       1 天前 via iPhone
    支付宝等账单导入不了?
    yidinghe
        2
    yidinghe  
       1 天前 via Android
    @xinru 支付宝账单怎么导出?
    xinru
        3
    xinru  
       1 天前 via iPhone
    @yidinghe 账单-右上角三点-开具交易流水
    shuaixiaoxiao
        4
    shuaixiaoxiao  
    OP
       1 天前
    @xinru 我加一下
    xinru
        5
    xinru  
       1 天前 via iPhone
    @shuaixiaoxiao 支付宝,微信这些常用的支付工具账单导入适配一下。导入账单方便一些
    shuaixiaoxiao
        6
    shuaixiaoxiao  
    OP
       1 天前
    @xinru 好主意
    brsyrockss
        7
    brsyrockss  
       1 天前
    NB 手动点个赞
    cheese
        8
    cheese  
       1 天前
    考虑下添加自动记账吗?现在在用一木,自动记账确实方便
    sutking
        9
    sutking  
       1 天前 via iPhone
    前几天看到这个感觉挺棒的: https://github.com/glink25/Cent
    直接在浏览器里交互,完全没有跨平台的麻烦,数据库直接放在 GitHub 里,几乎完美的安全,再用上 pwa ,感觉非常理想了。
    FeranyDev
        10
    FeranyDev  
       1 天前
    可以考虑加一个 ai 识图,将支付成功的截图分享到这个软件里面,可以自动识别金额、商家和消费类型以及消费时间、地点什么的
    runningman
        11
    runningman  
       1 天前
    挺好的,已 clone
    pangdundun996
        12
    pangdundun996  
       1 天前
    感谢分享,一直想做个类似的 app
    Ziuc
        13
    Ziuc  
       1 天前
    感谢分享,学习了一下,看起来项目里没有针对 WebDAV 场景下跨设备同步时的并发修改与删除问题?
    ( WebDAV 同步状态下,在一台设备上执行删除后,将删除操作传播给其他触发同步的设备)
    shuaixiaoxiao
        14
    shuaixiaoxiao  
    OP
       1 天前
    @brsyrockss 感谢支持!🙏
    shuaixiaoxiao
        15
    shuaixiaoxiao  
    OP
       1 天前
    @runningman 感谢 clone !如果有任何问题或建议,欢迎提 Issue 或 PR 。
    shuaixiaoxiao
        16
    shuaixiaoxiao  
    OP
       1 天前
    @pangdundun996 欢迎参考!代码完全开源( MIT ),可以随意使用和修改。
    shuaixiaoxiao
        17
    shuaixiaoxiao  
    OP
       1 天前
    @sutking Cent 这个思路确实很赞!直接用浏览器 + GitHub 存储,很聪明。

    不过我还是选择了原生 APP ,主要是:
    - 离线体验更好,本地 SQLite 没网也能用
    - 性能会好一点,数据多了也不卡
    - 能做桌面小组件、通知这些

    其实各有优势,看个人需求。Cent 适合喜欢 Web 的,蜜蜂记账适合要原生的。

    都挺好,不冲突 👍
    shuaixiaoxiao
        18
    shuaixiaoxiao  
    OP
       1 天前
    @FeranyDev 这个建议很好!识别截图自动记账确实能省很多事。

    技术上没问题,OCR + AI 提取信息,但有几个头疼的地方:

    1. 调 AI API 要钱(虽然不贵,但开源免费项目不太好搞)
    2. 本地跑 AI 模型,APP 会大几十 MB
    3. 隐私问题 - 用第三方 API 的话数据又出去了

    可能的办法是让用户自己申请 API key ,比如阿里云 OCR 、百度 OCR 这些,有免费额度。或者做成可选功能?

    我加到 TODO 里,看看有没有更好的方案。感谢建议!
    shuaixiaoxiao
        19
    shuaixiaoxiao  
    OP
       1 天前
    @cheese 我下载了一木看了下,原理大概是挂一个悬浮窗识别截图,这里我记个 todo 吧,主要是考虑两点:
    1.隐私问题
    2.OCR 成本问题
    shuaixiaoxiao
        20
    shuaixiaoxiao  
    OP
       1 天前
    @Ziuc 理解,有点类似于协同编辑?这个功能目前确实没有,我先记个 todo 研究下。
    thedog
        21
    thedog  
       1 天前
    ios 国区好像没搜到,是还没上架吗?
    shuaixiaoxiao
        22
    shuaixiaoxiao  
    OP
       1 天前
    @thedog 目前还没上架 App Store ,主要是需要 Apple 开发者账号($99/年)。

    现在有两个方案:

    **方案 1:自签名**(免费,稍微麻烦)
    - 用 Xcode 自己编译签名
    - 需要 Mac 电脑
    - 每 7 天需要重新签一次(免费账号限制)

    **方案 2:等 TestFlight**(推荐)
    - 正在众筹开发者账号费用
    - 目前进度 1.67%(¥12/$99 )
    - 达到目标后会立即上架 TestFlight

    如果你急着用,可以试试方案 1 。我可以提供详细的自签教程。

    或者如果方便的话,也欢迎支持一下众筹,早日让所有 iOS 用户都能用上 😄
    rcg1997
        23
    rcg1997  
       1 天前
    自动识别这个功能,我用过一段时间现成的快捷指令,是苹果自带的屏幕识别,设定双击背板运行此快捷指令就可以自动识别付款界面,然后把结果填写到表格中,不涉及到在线 OCR 的 api 数量问题, 你看这个思路能有帮助吗?
    ldlywt
        24
    ldlywt  
       1 天前 via Android
    很不错,就是图标不咋好看,建议换个简洁点的🥹
    Librola
        25
    Librola  
       1 天前
    @shuaixiaoxiao #18 我觉得让用户自己配置 API 是很好的方案。另外我看安卓端有一些基于无障碍功能的自动记账方案是非 AI 的,单纯的针对特定界面进行关键词匹配,我觉得也可以作为一个备选方案,缺点就是可能 app 改了界面就得重新适配。
    runningman
        26
    runningman  
       1 天前
    @shuaixiaoxiao 不知道是不是版本问题,flutter 版本比较新,但是编译打包的时候,总提示 plugin loader 相关的插件找不到
    tysb777
        27
    tysb777  
       1 天前
    能不能导入京东 淘宝的账单
    yaoliyc
        28
    yaoliyc  
       1 天前
    @shuaixiaoxiao #22 我用 altstore 安装 beecount-1.5.2-unsigned.ipa
    没成功 报什么参数错误 也不知道怎么回事。
    shuaixiaoxiao
        29
    shuaixiaoxiao  
    OP
       1 天前
    @rcg1997 是个好的思路,我记下 todo 尝试下看看。
    shuaixiaoxiao
        30
    shuaixiaoxiao  
    OP
       1 天前
    @ldlywt 我试试看,或者看能不能摇个专业的设计师参与进来重新设计下。
    shuaixiaoxiao
        31
    shuaixiaoxiao  
    OP
       1 天前
    @runningman 我用的是 3.27.3 ,可以试试看,如果不行可以私我下报错看看。
    shuaixiaoxiao
        32
    shuaixiaoxiao  
    OP
       1 天前
    @tysb777 还没支持,我加一下,应该就是和支付宝呢微信类似,适配下导出文件的格式即可。
    shuaixiaoxiao
        33
    shuaixiaoxiao  
    OP
       1 天前
    @yaoliyc 没安装成功?我之前使用某思助手安装的,但是要先签名才可以安装。
    shuaixiaoxiao
        34
    shuaixiaoxiao  
    OP
       1 天前
    @Librola 大致实现思路是这样子的,我调研一下哪个 ocr 准确点,不行的话就是适配常用支付软件的一些截图做纯文字识别。
    runningman
        35
    runningman  
       20 小时 58 分钟前
    @shuaixiaoxiao 我是升级到了最新的
    * What went wrong:
    An exception occurred applying plugin request [id: 'dev.flutter.flutter-plugin-loader', version: '1.0.0']
    > Could not find implementation class 'com.flutter.gradle.FlutterAppPluginLoaderPlugin' for plugin 'dev.flutter.flutter-plugin-loader' specified in jar:file:/Users/abc/.gradle/caches/jars-9/o_04e218ae1edf2416b8380193ef85b73c/gradle-1.0.0.jar!/META-INF/gradle-plugins/dev.flutter.flutter-plugin-loader.properties.
    shuaixiaoxiao
        36
    shuaixiaoxiao  
    OP
       20 小时 45 分钟前
    @runningman grade 安装的不对 这个 ai 搜下解决办法就好了
    runningman
        37
    runningman  
       9 小时 46 分钟前
    @shuaixiaoxiao 但是我其他 flutter 工程都运行好着,挺奇怪,
    jassssper
        38
    jassssper  
       8 小时 20 分钟前
    一直不理解为什么记账需要手动去记,导出、标记,不嫌麻烦吗
    keepfun
        39
    keepfun  
       7 小时 49 分钟前
    好用 刚把 [钱迹] 的导入了 使用一段时间看看。
    shuaixiaoxiao
        40
    shuaixiaoxiao  
    OP
       6 小时 51 分钟前
    @runningman grade 是每个项目单独要配的,你把 grade 缓存清理下重新安装就好了。另外 flutter 版本对齐下 3.27.3
    shuaixiaoxiao
        41
    shuaixiaoxiao  
    OP
       6 小时 50 分钟前
    @jassssper 不麻烦啊 用了十年了
    shuaixiaoxiao
        42
    shuaixiaoxiao  
    OP
       6 小时 50 分钟前
    @keepfun 感谢支持🙏 有问题和建议随时 github 或这里提出
    keepfun
        43
    keepfun  
       6 小时 39 分钟前
    这个登录 开始能登录 然后我配置了下 supabase 测试可以通。
    然后让我重新登录,就登录不上了。我理解有三个密码,试了都不行。

    1 最开始注册这个蜜蜂记账的
    2 注册 supabase 的
    3 注册 supabase 然后创建的项目的

    应该用哪个登录啊?
    shuaixiaoxiao
        44
    shuaixiaoxiao  
    OP
       6 小时 37 分钟前
    @keepfun 重新注册下,默认的是我配置的默认的 supabase 服务器。你配置了自己的 supabase 之后,就相当于换了个服务器。
    keepfun
        45
    keepfun  
       6 小时 30 分钟前
    @shuaixiaoxiao #44
    现在可以登录了(发送的邮件域名是 localhost 的)

    不过 [上传] 报错,说 bucket not found 。是要自己创建么?命名有啥要求么
    keepfun
        46
    keepfun  
       6 小时 14 分钟前
    @keepfun 我知道了 看到 github 的文档了。多谢楼主无私贡献。
    shuaixiaoxiao
        47
    shuaixiaoxiao  
    OP
       5 小时 17 分钟前
    @keepfun ♥️
    runningman
        48
    runningman  
       2 小时 56 分钟前
    @shuaixiaoxiao 我看项目里面 gradle 是 8.3 ,flutter 版本不能用最新吗,那这还得下载一下 3.27 了
    shuaixiaoxiao
        49
    shuaixiaoxiao  
    OP
       2 小时 50 分钟前
    @runningman 你这个报错主要是 gradle 问题 flutter 版本最新的应该也可以
    runningman
        50
    runningman  
       2 小时 50 分钟前
    @runningman 不行弄个群吧,或者我加你微信,
    runningman
        51
    runningman  
       2 小时 49 分钟前
    @shuaixiaoxiao 那我升级一下 gradle ,我其他项目是 8.10 ,我看这个里面是 8.3
    nifan
        52
    nifan  
       1 小时 43 分钟前
    试用了一下,遇到一个不方便的地方,从微信导入以后,我搜索房东,出来很多条,我想把这个笔房租记入住房,但不可以批量更改,只可以一笔一笔改,太麻烦了。
    keepfun
        53
    keepfun  
       1 小时 39 分钟前
    发现个问题 登录之后 很容易变成退出登录状态。
    shuaixiaoxiao
        54
    shuaixiaoxiao  
    OP
       1 小时 15 分钟前
    @nifan 有的兄弟 有个迁移功能
    shuaixiaoxiao
        55
    shuaixiaoxiao  
    OP
       1 小时 14 分钟前
    @keepfun 这个我倒没遇到过,可能是你的网络和 supabase 服务器连接不稳定
    shuaixiaoxiao
        56
    shuaixiaoxiao  
    OP
       1 小时 11 分钟前
    @keepfun 这里要判断是真掉了还是假掉了,假掉了大概率是网络连接不稳定,真掉了看下 supabase 的相关设置是不是吧登录有效期设置太短了
    keepfun
        57
    keepfun  
       23 分钟前
    @shuaixiaoxiao #56 supabase 找了下 没找到相关的设置。

    那针对这个 提一个优化建议 保存账号密码 反正数据在本地,这样就算登录,也就是点击一下子的事情。
    shuaixiaoxiao
        58
    shuaixiaoxiao  
    OP
       16 分钟前
    @keepfun 你先判断下是真掉了还是假掉了
    shuaixiaoxiao
        59
    shuaixiaoxiao  
    OP
       14 分钟前
    @keepfun 不能这么简单判断 账号密码不对的话执行同步就报错了
    shuaixiaoxiao
        60
    shuaixiaoxiao  
    OP
       13 分钟前
    可以 不行你私我下给你 v
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3257 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 11:14 · PVG 19:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.