cb325724dc8be6b23de7123fcafa7dd415213229

- 重构用户信息加载逻辑,采用Result类型处理成功与失败的响应,提升错误处理能力。 - 更新状态管理,确保用户信息加载状态与错误信息的准确反映。 - 移除冗余代码,简化用户信息获取流程,增强代码可读性。
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 包管理器
安装步骤
-
克隆项目到本地
-
在项目根目录执行:
pod install
-
打开
yana.xcworkspace
文件 -
编译运行项目
主要功能
- 用户认证:
- 邮箱登录流程(带验证码)
- 多种认证方式
- 即时通讯
- 会话管理
- 通讯录管理
- 本地会话列表
- 云存储集成
UI 组件
项目包含多种自定义 UI 组件:
- 自定义登录按钮
- 底部标签导航
- API 调用加载效果
- Web 视图集成
- 图片预览功能
- 屏幕适配工具
API 使用
项目提供了完整的 API 架构,基于 TCA (The Composable Architecture) 设计:
快速开始
// 基本 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
- 已配置框架冲突处理脚本
Description
Languages
Swift
95%
Python
3.3%
Ruby
1.6%
C
0.1%