App Composition 是一个用于 SwiftUI 应用架构的技能,帮助开发者解决应用级结构问题。
用途 该技能适用于以下场景:组织 @main 入口点与根视图;管理认证状态(登录 → 引导 → 主界面);在应用级状态之间切换且不产生闪烁;处理场景生命周期事件(scenePhase);在应用终止后恢复状态;决定何时拆分为功能模块;协调多窗口(iPad、axiom-visionOS)。
主要能力 技能围绕 AppStateController 模式展开,核心原则是“应用具有离散状态,应使用枚举显式建模,而不是分散的布尔值”。它提供:
- 应用级状态机:用枚举定义 loading、unauthenticated、onboarding、authenticated、error 等状态,并通过 isValidTransition 校验状态转换,避免“布尔汤”反模式。
- 根视图切换模式:@main 作为薄壳,仅创建 AppStateController、注入环境并触发初始化;RootView 根据状态切换视图。
- 闪烁预防:使用 ZStack 与 .transition(.opacity) 配合 .animation 实现平滑过渡,并可设置最小加载时长。
- 场景生命周期集成:通过 scenePhase 在 .active 时校验会话、刷新数据,在 .inactive 时保存状态,在 .background 时释放资源。
- 状态恢复:使用 SceneStorage 与状态校验模式。
- 功能模块拆分决策树:根据代码库规模与团队情况决定何时模块化。
- 反模式与压力场景:列出布尔状态、@main 中放逻辑、缺少恢复校验等常见错误。
使用方式 技能以文档形式提供指导,包含示例提示、决策树、代码片段(如 AppStateController、RootView、scenePhase 处理)以及测试示例。开发者可依据这些模式在自己的 SwiftUI 项目中实现应用组合。
适用场景 适用于需要管理复杂应用级状态、认证流程、根视图切换、场景生命周期和多窗口协调的 SwiftUI 应用。
限制 该技能的具体安装方式、收费情况、平台支持范围等事实暂未提供。