ac4492a8f1bf751652c8b09722cbfd63c59bc28b
ios-client
SwiftUI + MVVM 单向数据流的 iOS「打卡/习惯追踪」客户端,采用 SPM 多 target 模块化,架构对齐 Android NIA(core/* + feature/*)。
架构
App(组合根)──► feature/* ──► core/*
│
└──► CoreRepository ──► CoreNetwork / CoreDatabase / CoreDomain
依赖单向无环,由 SPM target 依赖天然强制(import 不到即编不过)。
模块
| 模块 | 职责 |
|---|---|
| CoreModel | 领域模型(叶子,Sendable 值类型) |
| CoreCommon | 通用工具(日志等) |
| CoreDomain | Repository 协议 + UseCase(纯 Swift) |
| CoreRepository | Repository 实现(Fake / OfflineFirst) |
| CoreNetwork | DTO + URLSession APIClient |
| CoreDatabase | SwiftData(@Model + ModelContainer) |
| DesignSystem | 设计 tokens(颜色/间距/圆角) |
| CoreUI | 可复用 SwiftUI 组件 |
| FeatureHome | 首页(打卡列表) |
| FeatureAuth | 登录 / 我的(占位) |
| App | 组合根(DI + 导航) |
环境要求
- Xcode 26.6+
- iOS 17.0+(
@Observable/ SwiftData 下限)
构建
xcodebuild -project ios-client.xcodeproj -scheme ios-client \
-destination 'generic/platform=iOS Simulator' \
CODE_SIGNING_ALLOWED=NO build
Lint
brew install swiftlint # 首次
swiftlint lint
目录与协作规范
见 CLAUDE.md 与 CONTRIBUTING.md。
License
Languages
Swift
100%