关于 swiftui-advanced
面向 SwiftUI 高级开发的参考技能,涵盖手势组合、自适应布局、架构选择与性能优化,帮助开发者按应用需求选型并检查常见问题。
主要功能
- 01组合同时或顺序执行的手势
- 02选择自适应布局方案
- 03按应用复杂度选择架构
- 04优化视图主体计算
- 05使用 Instruments 26 分析性能
适用场景
- 01组合具有明确优先关系的手势
- 02根据可用空间调整布局
- 03为新应用选择架构
- 04排查不必要的视图更新
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ johnrogers/ claude-swift-engineering --skill swiftui-advanced安装后在 Claude Code 中输入/swiftui-advanced确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/adaptive-layout.mdarchitecture.mdgestures.mdperformance.md详细介绍
SwiftUI 高级
用于手势组合、自适应布局、架构决策和性能优化的高级 SwiftUI 模式。
参考资料加载指南
只要有哪怕很小的可能需要用到相关内容,就务必加载参考文件。 与其错过某种模式或犯错,不如先了解背景信息。
| 参考资料 | 加载时机 |
|---|---|
| 手势 | 组合多个手势、GestureState、自定义识别器 |
| 自适应布局 | ViewThatFits、AnyLayout、尺寸类别、iOS 26 自由调整窗口 |
| 架构 | MVVM 与 TCA 的选择、State-as-Bridge、属性包装器选择 |
| 性能 | Instruments 26、视图 body 优化、不必要的更新 |
核心工作流
- 识别模式类别:根据用户的问题判断
- 加载相关参考资料:了解详细模式和代码示例
- 应用模式:遵循决策树和反模式
- 验证:使用提供的检查清单或性能分析指南
决策树
手势组合
- 两种手势要同时进行? ->
.simultaneously - 一种手势必须完成后才能进行下一种? ->
.sequenced - 只能有一种手势生效? ->
.exclusively
布局适配
- 选择最合适的变体? ->
ViewThatFits - 需要动画切换水平/垂直布局? ->
AnyLayout - 需要获取实际尺寸? ->
onGeometryChange
架构选择
- 小型应用,采用 Apple 模式? -> @Observable + State-as-Bridge
- 展示逻辑复杂? -> 使用 @Observable 的 MVVM
- 需要严格的可测试性? -> TCA
常见错误
-
手势组合顺序很重要 —
.simultaneously和.sequenced的触发时机不同。调换顺序会在不知不觉中改变行为。使用前请理解手势语义。 -
过度使用 ViewThatFits — ViewThatFits 会在视图每次变化时重新测量。对于带动画的水平/垂直布局切换,应使用
AnyLayout。仅在静态选择变体时使用 ViewThatFits。 -
onGeometryChange 触发不必要的更新 — 读取几何信息会改变几何状态,进而触发更新,而更新又会改变几何状态……形成循环。仅在状态管理得当、能够避免循环时使用
.onGeometryChange。 -
项目中途更换架构 — 以 @Observable + State-as-Bridge 起步,之后才发现需要 TCA,会带来高昂成本。应根据复杂度提前选择架构(小型应用 = @Observable,复杂应用 = TCA)。
-
忽略视图 body 优化 — 在视图 body 中反复执行昂贵的计算会严重影响性能。将计算移至属性或模型中。应先使用 Instruments 26 进行性能分析,再考虑优化。
评论
支持 Markdown