{"id":50263388,"url":"https://github.com/findnextstep/next_budget","last_synced_at":"2026-05-27T12:05:27.783Z","repository":{"id":357377711,"uuid":"1236645410","full_name":"findNextStep/next_budget","owner":"findNextStep","description":"简易的记账工具，代码100%来自AI","archived":false,"fork":false,"pushed_at":"2026-05-25T02:58:49.000Z","size":326,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T04:29:41.140Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/findNextStep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-12T12:46:55.000Z","updated_at":"2026-05-25T02:58:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/findNextStep/next_budget","commit_stats":null,"previous_names":["findnextstep/next_budget"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/findNextStep/next_budget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findNextStep%2Fnext_budget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findNextStep%2Fnext_budget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findNextStep%2Fnext_budget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findNextStep%2Fnext_budget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/findNextStep","download_url":"https://codeload.github.com/findNextStep/next_budget/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findNextStep%2Fnext_budget/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33564959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-27T12:05:25.428Z","updated_at":"2026-05-27T12:05:27.775Z","avatar_url":"https://github.com/findNextStep.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Budget\n\n个人记账 Android 应用，基于 Kotlin + Jetpack Compose。\n\n## 功能\n\n- **记账**：记录收入/支出，支持 20+ 种预定义分类，可添加备注\n- **编辑交易**：点击历史记录可修改金额、分类和备注\n- **日薪自动入账**：设置月收入后自动折算为日薪，每日自动录入\n- **智能分类推测**：根据历史同数额记录自动推断分类\n- **悬浮窗快速记账**：在其他应用之上通过悬浮气泡快速记录支出，支持拖拽、长按关闭\n- **悬浮球环形进度**：气泡边缘显示今日支出占收入比例（绿色 \u003c 60%，红色 ≥ 60%）\n- **悬浮窗「其他」跳转**：输入金额后点击「其他」跳转到完整记账页选择细分类别\n- **数字键盘震动反馈**：按键时数字键轻震、操作键强震\n- **GitHub 风格热力图**：月视图每日格子、年视图每周格子，直观展示支出密度\n- **前后周期导航**：统计页左右滑动切换时间周期，带平滑过渡动画\n- **日详情钻取**：周/月/年视图点击某天展开当日交易列表，支持返回上层\n- **快捷开关磁贴**：通知栏一键开关悬浮记账\n- **CSV 导入导出**：批量导入历史账目，导出当前全部记录\n- **深色/纯黑主题**：适配不同使用场景\n\n## 技术栈\n\n| 类别 | 选型 |\n|------|------|\n| 语言 | Kotlin |\n| UI 框架 | Jetpack Compose + Material 3 |\n| 构建 | Gradle, AGP |\n| 最低 SDK | Android 8.0 (API 26) |\n| 目标 SDK | Android 14 (API 34) |\n| 持久化 | JSON 文件存储 |\n| 架构 | MVVM（ViewModel + Repository） |\n\n## 项目结构\n\n```\napp/src/main/java/ai/findnextstep/budget/\n├── MainActivity.kt\n├── logic/\n│   ├── model/\n│   │   ├── Transaction.kt\n│   │   ├── Category.kt\n│   │   ├── Statistics.kt\n│   │   └── Period.kt\n│   ├── repository/\n│   │   └── TransactionRepository.kt\n│   ├── service/\n│   │   ├── StatisticsService.kt\n│   │   ├── SalaryService.kt\n│   │   ├── CategoryPredictor.kt\n│   │   └── CsvService.kt\n│   └── util/\n│       └── DateUtils.kt\n├── data/\n│   └── JsonTransactionRepository.kt\n└── ui/\n    ├── screen/\n    │   ├── MainScreen.kt\n    │   ├── AddTransactionScreen.kt\n    │   ├── StatisticsScreen.kt\n    │   └── SettingsScreen.kt\n    ├── component/\n    │   ├── NumberPad.kt\n    │   ├── CategorySelector.kt\n    │   ├── PeriodSelector.kt\n    │   └── ExpenseHeatmap.kt\n    ├── service/\n    │   ├── FloatingExpenseService.kt\n    │   └── FloatingTileService.kt\n    ├── viewmodel/\n    │   └── BudgetViewModel.kt\n    └── theme/\n        ├── Color.kt\n        ├── Theme.kt\n        └── Type.kt\n```\n\n## 构建\n\n```bash\n./gradlew assembleDebug\n```\n\nAPK 位于 `app/build/outputs/apk/debug/`。\n\n## 权限\n\n| 权限 | 用途 |\n|------|------|\n| `SYSTEM_ALERT_WINDOW` | 悬浮窗快速记账 |\n| `FOREGROUND_SERVICE` | 前台服务 |\n| `FOREGROUND_SERVICE_SPECIAL_USE` | Android 14+ 前台服务类型 |\n| `POST_NOTIFICATIONS` | Android 13+ 通知权限 |\n| `BIND_QUICK_SETTINGS_TILE` | 快捷开关磁贴 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffindnextstep%2Fnext_budget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffindnextstep%2Fnext_budget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffindnextstep%2Fnext_budget/lists"}