- 发布与更新:最近在 Flathub 上发布了Fruit Credits的第一个预发布版本,之后因审核员发现一个 bug 又立即发布了两个版本。
- 为何开发:辞去工作后意识到找新工作前可能需要更负责地管理钱,下载了hledger,起初尝试使用但未养成习惯,担心新尝试是拖延机制,没想到一个月后就感觉对生活更有掌控感且一直保持收支平衡。起初难以理解自己记账的价值,现在觉得好处包括所有信息在一处、数据可查询、是免费软件且操作自由等。开始直接在文本编辑器中输入账本格式的交易,后来使用
hledger add但觉得太笨拙易出错。 如何开发:听闻Tauri是改进后的 Electron 后决定用它做桌面应用,但发现让网页应用看起来像桌面应用比 Discord 还难,作为 GNOME 用户受GNOME Circle启发用GTK4和libadwaita开发,用 GNOME Builder 搭建应用并开发一段时间后发现不用它也能构建应用并回到 Zed ,配置过程中遇到一些问题如默认模板的翻译目录设置等,虽然构建过程有困难但编程过程很愉快,尤其喜欢BlueprintUI 语言。
- Vala 的特点:Rust 是新 GTK 应用的推荐语言,但作者未深入学习 Rust ,认为加入 GObject 内存管理模型也不会喜欢,GObject 是 GTK 的子系统提供面向对象编程和引用计数内存管理功能,但在 C 中写类很繁琐且需要手动管理引用计数,Vala 从一开始就考虑 GObject ,有内置语法但存在编译器 bug 、标准库基于 C 、refcounting 不如全追踪垃圾回收方便等问题,Vala 的调试工具是gdb且无 Vala 支持,需要通过生成的 C 调试,GLib 的内置日志框架使 printf 风格调试很方便,吸引作者的是其考虑周到。
- Flathub 打包 Haskell:Fruit Credits 依赖 Haskell 的[hledger],Flathub 要求从源构建且在构建前下载所有必要源,这与 Haskell 的构建模式相反,经过几天研究找到cabal-flatpak工具来生成 Flatpak 清单,但该工具存在 bug 且无报告途径,作者通过写jq 和 shell 脚本解决。提交应用到 Flathub 时发现自己是先驱。
- 应用功能:Fruit Credits 相比 hledger 较基础,但已可用于作者的用例,目前正在开发设置界面创建新账本文件、使应用更适合新手、添加编辑删除交易和报告功能等,欢迎人们尝试即使只是指出无法读取账本文件的问题。
- 获取渠道:可在Flathub获取,代码在Codeberg,在 Codeberg 上可提交问题,网站在https://fruitcredits.dz4k.com/。作者虽生活无忧但仍希望找到工作并投资了 Val 编程和 Haskell Flatpak 打包技能。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。