Add base infrastructure and SPM dependencies for iOS development.

Integrate SnapKit and Kingfisher, add BaseViewController and NotificationName, and streamline AGENTS.md with Android-aligned conventions.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-06 14:59:55 +08:00
co-authored by Cursor
parent 6cc2336e7b
commit e290656322
6 changed files with 341 additions and 152 deletions
+74
View File
@@ -0,0 +1,74 @@
//
// NotificationName.swift
// suixinkan
//
import Foundation
/// 工程中所有 `NotificationCenter` 通知名称的统一入口。
/// 新增通知时只能在此文件声明,禁止在业务代码中硬编码字符串。
enum NotificationName {
private static let prefix = "com.yuanzhixiang.suixinkan."
private static func name(_ suffix: String) -> Notification.Name {
Notification.Name(prefix + suffix)
}
// MARK: - Session
/// 用户登录成功
static let userDidLogin = name("userDidLogin")
/// 用户主动退出登录
static let userDidLogout = name("userDidLogout")
/// Token 失效或鉴权失败,需重新登录
static let sessionDidExpire = name("sessionDidExpire")
// MARK: - Scenic
/// 当前景区切换
static let scenicDidChange = name("scenicDidChange")
// MARK: - User Profile
/// 用户资料更新(头像、昵称、角色等)
static let userProfileDidUpdate = name("userProfileDidUpdate")
// MARK: - Message
/// 未读消息数量变化
static let unreadMessageCountDidChange = name("unreadMessageCountDidChange")
// MARK: - Order
/// 订单状态或列表发生变化
static let orderDidUpdate = name("orderDidUpdate")
// MARK: - Task
/// 任务状态或列表发生变化
static let taskDidUpdate = name("taskDidUpdate")
// MARK: - Scenic Queue
/// 排队叫号数据变化
static let scenicQueueDidUpdate = name("scenicQueueDidUpdate")
// MARK: - Voice Call
/// 语音通话状态变化
static let voiceCallStateDidChange = name("voiceCallStateDidChange")
}
/// `Notification.userInfo` 字典键的统一入口。
enum NotificationUserInfoKey {
static let scenicId = "scenicId"
static let scenicName = "scenicName"
static let orderId = "orderId"
static let taskId = "taskId"
static let unreadCount = "unreadCount"
static let voiceCallState = "voiceCallState"
}