mcpField
N
neo-swift-ui

neo-swift-ui

github.com/benknightdark开发735 次安装3 天前更新
代码仓库

关于 neo-swift-ui

neo-swift-ui 是面向 iOS 16 及以上 SwiftUI 项目的开发技能,适用于编写、调试和重构界面代码。它根据部署目标和状态管理方式提供现代导航、布局与数据流建议。

主要功能

  1. 01确认部署目标和状态管理方式
  2. 02规划可复用的视图层级
  3. 03采用现代导航与布局 API
  4. 04检查状态绑定、视图刷新和代码结构

适用场景

  1. 01将旧导航改为 NavigationStack
  2. 02使用现代状态管理构建 SwiftUI 界面
  3. 03拆分复杂视图并检查数据流

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/benknightdark/neo-skills --skill neo-swift-ui

安装后在 Claude Code 中输入/neo-swift-ui确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
anti-patterns.md
coding-style.md
patterns.md

详细介绍

现代 SwiftUI(iOS 16+)专家技能

触发条件

  • 用户要求编写、调试、重构或审查 SwiftUI 代码。
  • 目标项目版本为 iOS 16 或更高版本(使用 NavigationStack、Grid 等功能)。
  • 开发涉及状态管理(@State、@Observable)、自定义布局或动画。

工作流程

  1. 感知(版本与环境意识):
    • 确认部署目标是否为 iOS 16+。
    • 确定当前采用的状态管理范式(传统的 ObservableObject 还是现代的 @Observable)。
    • 评估导航组件的使用情况(检查是否仍在使用已弃用的 NavigationView)。
  2. 推理(规划阶段):
    • 规划视图层级,以最大限度提高可复用性并减少冗余的 body 计算。
    • 导航需求应使用 NavigationStack 或 NavigationSplitView。
    • 根据数据生命周期选择合适的数据流工具(State、Binding、Environment)。
  3. 执行(实施阶段):
    • 遵循 SwiftUI 核心原则,编写简洁、声明式的 Swift 代码。
    • 使用 Grid、ViewThatFits 或自定义 Layout 协议实现复杂布局。
    • 使用现代修饰符(例如带有 detents 的 .sheet)。
  4. 验证(标准验证):
    • 检查是否存在“上帝视图”(逻辑或 body 内容过多的视图),并建议拆分。
    • 确保正确使用 @State 和 @Binding,避免不必要的视图刷新。
    • 确认界面流畅,并符合 Apple 人机界面指南(HIG)。

功能路线图(SwiftUI 演进)

iOS 13.0 - 15.0(基础阶段)
  • 声明式语法:核心 View 协议和 body 属性。
  • 状态管理:@State、@Binding、@ObservedObject、@EnvironmentObject。
  • 基础容器:VStack、HStack、ZStack、List。
  • 旧版导航:NavigationView 和 NavigationLink。
iOS 16.0 - 17.0(现代阶段)
  • NavigationStack:解耦且由数据驱动的导航模式。
  • Observation 框架:用 @Observable 宏(Swift 5.9+)替代 ObservableObject。
  • 高级布局:Grid、ViewThatFits 和 Layout 协议。
  • Swift Charts:原生数据可视化框架。
iOS 18.0+(最新功能)
  • SwiftUI 动画:新增基于阶段和关键帧的动画 API。
  • 交互增强:改进滚动视图控件和手势处理。

编码标准

  • 声明式风格:保持视图树结构清晰,避免在 body 中编写复杂逻辑。
  • 模块化:将子视图拆分为独立的 struct,而不是计算属性。
  • 预览指南:使用 #Preview 宏加快开发,并在多种环境设置下测试(深色模式、不同地区设置)。
  • 类型安全:优先使用强类型导航路径和环境键。

交付内容

  • 针对版本优化的代码:提供使用 iOS 16+ 功能的代码(例如 NavigationStack、presentationDetents)。
  • 模块化视图组件:将大型视图拆分为职责单一、可复用的组件。
  • 现代状态管理:对于支持 Swift 5.9+ 的项目,优先采用 @Observable 模式。

验证

  • 确保代码编译时没有警告,并针对目标版本使用最佳可用 API。
  • 验证视图 body 的执行效率,确保其中不包含副作用。
  • 尽可能确认数据流遵循单向数据流原则。

文档

官方参考资料
内部参考资料

评论

支持 Markdown