mcpField
S
swiftui-advanced

swiftui-advanced

github.com/johnrogers开发233164 次安装40 周前更新
代码仓库

关于 swiftui-advanced

面向 SwiftUI 高级开发的参考技能,涵盖手势组合、自适应布局、架构选择与性能优化,帮助开发者按应用需求选型并检查常见问题。

主要功能

  1. 01组合同时或顺序执行的手势
  2. 02选择自适应布局方案
  3. 03按应用复杂度选择架构
  4. 04优化视图主体计算
  5. 05使用 Instruments 26 分析性能

适用场景

  1. 01组合具有明确优先关系的手势
  2. 02根据可用空间调整布局
  3. 03为新应用选择架构
  4. 04排查不必要的视图更新

安装

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

$npx skills add https://github.com/johnrogers/claude-swift-engineering --skill swiftui-advanced

安装后在 Claude Code 中输入/swiftui-advanced确认已加载。

包含的文件

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

references/
adaptive-layout.md
architecture.md
gestures.md
performance.md

详细介绍

SwiftUI 高级

用于手势组合、自适应布局、架构决策和性能优化的高级 SwiftUI 模式。

参考资料加载指南

只要有哪怕很小的可能需要用到相关内容,就务必加载参考文件。 与其错过某种模式或犯错,不如先了解背景信息。

参考资料加载时机
手势组合多个手势、GestureState、自定义识别器
自适应布局ViewThatFits、AnyLayout、尺寸类别、iOS 26 自由调整窗口
架构MVVM 与 TCA 的选择、State-as-Bridge、属性包装器选择
性能Instruments 26、视图 body 优化、不必要的更新

核心工作流

  1. 识别模式类别:根据用户的问题判断
  2. 加载相关参考资料:了解详细模式和代码示例
  3. 应用模式:遵循决策树和反模式
  4. 验证:使用提供的检查清单或性能分析指南

决策树

手势组合
  • 两种手势要同时进行? -> .simultaneously
  • 一种手势必须完成后才能进行下一种? -> .sequenced
  • 只能有一种手势生效? -> .exclusively
布局适配
  • 选择最合适的变体? -> ViewThatFits
  • 需要动画切换水平/垂直布局? -> AnyLayout
  • 需要获取实际尺寸? -> onGeometryChange
架构选择
  • 小型应用,采用 Apple 模式? -> @Observable + State-as-Bridge
  • 展示逻辑复杂? -> 使用 @Observable 的 MVVM
  • 需要严格的可测试性? -> TCA

常见错误

  1. 手势组合顺序很重要 — .simultaneously 和 .sequenced 的触发时机不同。调换顺序会在不知不觉中改变行为。使用前请理解手势语义。

  2. 过度使用 ViewThatFits — ViewThatFits 会在视图每次变化时重新测量。对于带动画的水平/垂直布局切换,应使用 AnyLayout。仅在静态选择变体时使用 ViewThatFits。

  3. onGeometryChange 触发不必要的更新 — 读取几何信息会改变几何状态,进而触发更新,而更新又会改变几何状态……形成循环。仅在状态管理得当、能够避免循环时使用 .onGeometryChange。

  4. 项目中途更换架构 — 以 @Observable + State-as-Bridge 起步,之后才发现需要 TCA,会带来高昂成本。应根据复杂度提前选择架构(小型应用 = @Observable,复杂应用 = TCA)。

  5. 忽略视图 body 优化 — 在视图 body 中反复执行昂贵的计算会严重影响性能。将计算移至属性或模型中。应先使用 Instruments 26 进行性能分析,再考虑优化。

评论

支持 Markdown