42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# suixinkan
|
||
|
||
## 项目概览
|
||
|
||
这是一个 **Swift + UIKit** 的 iOS 工程,采用 **MVVM** 设计模式。
|
||
|
||
## 平台与设备
|
||
|
||
- **最低系统版本**:iOS 16
|
||
- **设备**:仅支持 iPhone(`TARGETED_DEVICE_FAMILY = 1`)
|
||
- **屏幕方向**:仅竖屏(Portrait)
|
||
|
||
开发时请遵守以上约束,不要引入 iPad 专属布局、横屏适配或低于 iOS 16 的 API。
|
||
|
||
## 架构(MVVM)
|
||
|
||
按 MVVM 分层组织代码,职责清晰:
|
||
|
||
| 层级 | 职责 |
|
||
|------|------|
|
||
| **View** | `UIViewController` / 自定义 `UIView`,负责 UI 展示与用户交互,不包含业务逻辑 |
|
||
| **ViewModel** | 处理业务逻辑与状态,向 View 暴露可绑定的数据;不直接引用 UIKit 视图 |
|
||
| **Model** | 数据模型、网络/本地数据源 |
|
||
|
||
### 约定
|
||
|
||
- View 通过 ViewModel 获取数据并响应用户操作,避免在 ViewController 中写复杂业务逻辑
|
||
- ViewModel 不依赖 `UIViewController` 或具体 View 类型
|
||
- 新增功能时,优先创建对应的 Model、ViewModel、View(Controller)文件,保持结构一致
|
||
|
||
## 技术栈
|
||
|
||
- **语言**:Swift
|
||
- **UI 框架**:UIKit(Storyboard / 代码布局均可,与现有工程保持一致)
|
||
- **入口**:`AppDelegate`、`SceneDelegate`、`Main.storyboard`
|
||
|
||
## 开发注意
|
||
|
||
- 使用 iOS 16+ 可用 API;如需兼容更低版本,需先与项目维护者确认
|
||
- UI 按竖屏 iPhone 设计,无需考虑横屏与 iPad 分屏
|
||
- 保持代码简洁,遵循现有命名与目录风格
|