SuperAPI AI 工具集

swift-navigation-skill

编程与开发

查看项目

更新于 10-15 21:39

技能介绍

用途:把 SwiftNavigation 库集成进 SwiftUI 应用,按该库既定的 MVVM-C 模式搭建导航,而不是自造一套并行导航抽象。

主要能力:以类型化路由枚举与载荷结构体建模路由;每个应用根或场景保留一个根 NavigationCoordinator<StackRoute, ModalRoute, AlertRoute>;用 NavigationRouterProxy 支撑 @MainActor 的功能协调器;向 @Observable 视图模型注入路由协议;由单一 RoutingView 统一映射栈、模态与弹窗;支持深链接与通用链接解析、登录拦截后恢复导航、以及快照持久化与恢复。

使用方式:先加载 references/workflow.md 获取端到端实现顺序,再按任务加载 routes-and-state.md、coordinators-and-di.md、presentation.md、deep-links-and-universal-links.md、state-restoration.md。典型流程为:定义 AppRoute、AppModalRoute、AppAlertRoute;创建根协调器、共享 NavigationRouterProxy、服务与子协调器;向视图模型注入路由协议;构建唯一 RoutingView 根并映射各类目的地;为可编辑或重复流程步骤添加 NavigationEntryID 书签;添加 URL 与通知解析器、通用链接入口及可选登录拦截;用 exportState() 持久化、restore(from:) 恢复;在测试中直接断言协调器状态。

适用场景:需要结构化、可测试、可恢复导航的 SwiftUI 应用,尤其是含深链接、登录门控、多步骤或可重复目的地的流程。

限制与注意:路由应保持 Codable、Hashable;仅在确实不需要协调器驱动弹窗时对 AlertRoute 使用 Never;深链接解析器应重建完整 NavigationState,而非在视图中命令式回放;受保护深链接需异步拦截并在登录后用 resumePendingNavigation() 恢复;避免在功能视图中保留长期存活的 sheet、alert 或导航布尔值,避免向每个视图模型注入完整根协调器,避免仅靠路由相等性定位重复出现的路由。资料未提供具体安装命令、版本要求与平台支持信息。