SpendWise 是一个 iOS SwiftUI 课程大作业项目,定位为面向国内学生和年轻用户的个人订阅与周期性支出管理 App。它聚焦自动订阅、固定账单和分类预算,帮助用户看清每月固定开销,避免忘记扣费、重复订阅和预算超支。
- 平台:iOS
- UI 框架:SwiftUI
- 本地存储:SwiftData
- 核心页面:首页总览、支出列表、添加支出、编辑支出、支出详情、月度复盘
- 核心功能:新增、查看、编辑、删除、标记已支付、搜索、筛选/排序、本地保存、统计总览、预算进度、月度复盘
- 交互要求:左滑删除、长按快捷操作
- 动画要求:添加项目动画、状态切换动画、预算进度动画
- 加分功能:AI 风格消费建议、自定义分类颜色、自定义图标、设置页 USD/CNY 显示切换
.impeccable.md:项目级设计约束,明确 Apple 原生感、Sage Green 主题色、优雅简洁和四个 Tab 的职责分离docs/phase1-member-a-product-plan.md:阶段一成员 A 的产品功能规划草案docs/plans/2026-05-28-phase1-a-completion-design.md:阶段一 A 计划补全设计docs/plans/2026-05-28-phase1-a-completion-implementation.md:阶段一 A 计划补全实施步骤docs/phase3-core-feature-completion.md:阶段三核心功能完成说明docs/phase5-interaction-visual-completion.md:阶段五交互与视觉精修完成说明docs/phase6-final-delivery.md:阶段六最终交付说明docs/final-design-document.md:最终设计文档docs/final-test-checklist.md:最终测试清单docs/demo-script.md:Demo 录制脚本
本仓库已经包含可运行的 Xcode 工程 SpendWise.xcodeproj。当前版本已对齐成员 A 的阶段一产品规划,并补齐成员 B 的 SwiftUI/SwiftData 实现闭环:
- SwiftData 模型:
ExpenseItem、ExpenseType、BillingCycle、自定义颜色和图标字段 - 数据读写:新增、编辑、删除、标记已支付、本地持久化
- 统计逻辑:本月预计支出、已支付、未支付、逾期/即将扣费、预算进度
- 列表逻辑:搜索名称/备注/类型,按类型筛选,按下次支付日期、金额、名称排序
- 表单校验:名称必填,金额必须为正数,预算上限填写时必须为正数
- 导航结构:底部包含 Dashboard、Expenses、Review、Settings 四个 Tab,Dashboard 右上角提供原生
+快捷添加,Expenses 承担完整列表管理 - 设置页:底部第四个 Settings Tab 提供全局人民币/美元显示切换、新建支出默认值和 Dashboard Smart Advice 显示偏好
- 币种规则:单项支出保存自己的原始币种,所有金额展示按 Settings 选择的币种自动换算;当前使用固定演示汇率
1 USD = 7.20 CNY - 月度复盘:分类占比、支付状态、最大支出、预算风险和消费建议
- 交互:左滑删除,右滑标记已支付/未支付,长按快捷标记已支付或删除,操作后有触感和行高亮反馈
- 动画:新增项目插入动画,支付状态切换动画,预算进度动画
- 样例数据:可在 Settings 手动加载腾讯视频、iCloud、房租、话费、饮食预算、学习预算,并覆盖颜色、图标和 iCloud 美元场景
阶段一仍保持轻量本地工具定位,不做登录注册、云同步、真实支付接入、银行账户连接、实时通知、完整每日记账或复杂报表;币种切换使用固定演示汇率,不接实时汇率接口。
- 用 Xcode 打开
SpendWise.xcodeproj。 - 选择
SpendWisescheme。 - 选择 iOS 17 或更新版本的模拟器。
- 点击 Run。
命令行验证:
xcodebuild test -project SpendWise.xcodeproj -scheme SpendWise -destination 'platform=iOS Simulator,name=iPhone 17'本项目使用 iOS 17+,因为 SwiftData 是核心本地存储方案。
- 阶段一 A:产品功能规划已完成,详见
docs/phase1-member-a-product-plan.md。 - 阶段二 A:页面结构与产品入口本地验收已完成,详见
docs/phase2-member-a-structure-plan.md。 - 阶段三:核心 CRUD、本地保存、详情、编辑和支付状态闭环已完成,详见
docs/phase3-core-feature-completion.md。 - 阶段四 A:Dashboard 统计总览本地验收已完成,详见
docs/phase4-member-a-dashboard-plan.md。 - 阶段五:交互、动画与视觉精修已完成,详见
docs/phase5-interaction-visual-completion.md。 - 阶段六:最终文档、测试清单和 Demo 脚本已完成,详见
docs/phase6-final-delivery.md。 - B 的 SwiftUI/SwiftData 实现已经覆盖核心页面、模型、本地存储、统计、搜索、筛选、排序、样例数据和测试基础。
- 在 Mac/Xcode 中运行项目,验证 Add/Edit、Dashboard、List、Detail、Review 的真实交互。
- 按
docs/final-test-checklist.md完成最终验收。 - 按
docs/demo-script.md录制 Demo 视频。 - 如课程要求独立 PDF / Keynote,可基于
docs/final-design-document.md和docs/phase6-final-delivery.md排版导出。