用Java和Kotlin搓了一个记账App
把财务管理 App 这种经典项目用 Java 和 Kotlin 混合开发一遍,最直接的感受就是对 Android 架构的理解深了很多。BudgetBuddy 的核心逻辑其实就是一套完整的本地数据流:从输入交易 -> 存入 SQLite/Room -> 实时更新 Dashboard。
技术栈选型:

下一篇
Openship 实测:部署工具不该抢应用的内存 →
这次实战最核心的几个功能点:
- 收支追踪与预算限制:实现了月度预算预警,通过计算
CurrentSpending / MonthlyLimit来实时反馈预算进度。 - 账单分摊 (Split Bills):这个功能在逻辑处理上稍微复杂一点,需要处理好多人分摊的精度问题。
- Material Design 适配:全量使用了 Material Components,尤其是 Dark Theme 的适配,让界面看起来不那么像十年前的 Demo。
技术栈选型:
- 语言:Java + Kotlin (体验了两者的互操作性,Kotlin 写 UI 逻辑确实快很多)
- IDE:Android Studio
- 数据库:SQLite / Room (负责所有交易记录的持久化)
- 布局:XML Layouts + Material Design

在开发过程中,最踩坑的地方其实是 RecyclerView 的优化。当交易记录变多时,如果处理不好 onBindViewHolder 里的逻辑,滑动起来会有明显的掉帧。后来通过优化 DiffUtil 才把流畅度提上来。
具体的数据库表结构大致是这样的:
CREATE TABLE transactions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
amount REAL NOT NULL,
category TEXT,
note TEXT,
date LONG,
type TEXT -- 'income' or 'expense'
);
目前这个版本已经跑通了核心链路,下一步打算把数据分析图表给加上,现在纯列表看数据确实有点枯燥。
源码和安装包可以去这里看:
https://github.com/Toxiclikith/budgetBuddy-apk