
- 在项目简介中添加The Composable Architecture (TCA)架构设计信息。 - 更新技术栈部分,包含支持的开发语言、最低支持版本及主要框架。 - 增加用户认证、云存储集成及自定义UI组件的描述。 - 修改环境要求以支持iOS 16及以上版本。 - 更新开发规范,采用TCA架构模式并支持多语言。 - 添加API测试目标和开发团队信息,提升文档完整性。
128 lines
3.5 KiB
Markdown
128 lines
3.5 KiB
Markdown
# Yana iOS 项目
|
||
|
||
## 项目简介
|
||
|
||
Yana 是一个基于 iOS 平台的即时通讯应用,使用 Swift 语言开发,集成了网易云信 SDK 实现即时通讯功能,并采用 The Composable Architecture (TCA) 架构设计。
|
||
|
||
## 技术栈
|
||
|
||
- **开发语言**:Swift (主要),Objective-C (部分组件)
|
||
- **最低支持版本**:iOS 16
|
||
- **架构模式**:The Composable Architecture (TCA) - 1.20.2
|
||
- **UI 框架**:SwiftUI
|
||
- **依赖管理**:
|
||
- CocoaPods
|
||
- Swift Package Manager
|
||
- **主要框架**:
|
||
- NIMSDK_LITE:网易云信即时通讯 SDK (10.6.1)
|
||
- NEChatKit:聊天核心组件
|
||
- NEChatUIKit:会话(聊天)UI 组件
|
||
- NEContactUIKit:通讯录 UI 组件
|
||
- NELocalConversationUIKit:本地会话列表 UI 组件
|
||
- Alamofire:网络请求框架
|
||
- ComposableArchitecture:状态管理 (v1.20.2+)
|
||
- CasePaths:枚举模式匹配
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
yana/
|
||
├── yana/ # 主应用源代码
|
||
│ ├── Info.plist
|
||
│ ├── yana-Bridging-Header.h # Objective-C 集成桥接头文件
|
||
│ ├── AppDelegate.swift # 应用程序代理
|
||
│ ├── yanaApp.swift # SwiftUI 应用入口
|
||
│ ├── ContentView.swift # 主视图
|
||
│ ├── Managers/ # 管理器类
|
||
│ ├── Models/ # 数据模型
|
||
│ ├── Configs/ # 配置文件
|
||
│ ├── APIs/ # API 相关文件
|
||
│ └── Assets.xcassets/ # 资源文件
|
||
├── yanaAPITests/ # API 测试目标
|
||
└── Pods/ # CocoaPods 依赖
|
||
```
|
||
|
||
## 环境要求
|
||
|
||
- Xcode 13.0 或更高版本
|
||
- iOS 16 或更高版本
|
||
- CocoaPods 包管理器
|
||
|
||
## 安装步骤
|
||
|
||
1. 克隆项目到本地
|
||
2. 在项目根目录执行:
|
||
|
||
```bash
|
||
pod install
|
||
```
|
||
|
||
3. 打开 `yana.xcworkspace` 文件
|
||
4. 编译运行项目
|
||
|
||
## 主要功能
|
||
|
||
- **用户认证**:
|
||
- 邮箱登录流程(带验证码)
|
||
- 多种认证方式
|
||
- **即时通讯**
|
||
- **会话管理**
|
||
- **通讯录管理**
|
||
- **本地会话列表**
|
||
- **云存储集成**
|
||
|
||
## UI 组件
|
||
|
||
项目包含多种自定义 UI 组件:
|
||
- 自定义登录按钮
|
||
- 底部标签导航
|
||
- API 调用加载效果
|
||
- Web 视图集成
|
||
- 图片预览功能
|
||
- 屏幕适配工具
|
||
|
||
## API 使用
|
||
|
||
项目提供了完整的 API 架构,基于 TCA (The Composable Architecture) 设计:
|
||
|
||
- 📖 **[API 使用指南](API-README.md)** - 完整的 API 使用文档
|
||
- 🔧 **[API 规则详解](yana/APIs/API%20rule.md)** - API 请求配置和安全机制
|
||
- 🚀 **[集成指南](yana/APIs/Integration-Guide.md)** - API 集成和最佳实践
|
||
|
||
### 快速开始
|
||
|
||
```swift
|
||
// 基本 API 请求示例
|
||
let apiService = LiveAPIService()
|
||
let request = ConfigRequest()
|
||
let response = try await apiService.request(request)
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- 项目使用 CocoaPods 管理依赖
|
||
- 需要配置网易云信相关密钥
|
||
- 最低支持 iOS 16 版本
|
||
- 仅支持 iPhone 设备(不支持 iPad、Mac Catalyst 或 Vision Pro)
|
||
|
||
## 开发规范
|
||
|
||
- 遵循 Swift 官方编码规范
|
||
- 使用 SwiftUI 构建用户界面
|
||
- 采用 TCA 架构模式
|
||
- 支持多语言(包含中文本地化)
|
||
|
||
## 测试
|
||
|
||
项目包含专门的 API 测试目标 "yanaAPITests",用于对主应用的 API 功能进行单元测试。
|
||
|
||
## 开发团队
|
||
|
||
项目由团队 "EKM7RAGNA6" 开发,测试目标的包标识符为 "com.stupidmonkey.yanaAPITests"。
|
||
|
||
## 构建配置
|
||
|
||
- 项目使用动态框架
|
||
- 支持 iOS 16 及以上版本
|
||
- Swift 版本:6.0
|
||
- 已配置框架冲突处理脚本 |