mcpField
A
axiom-ios-ui

axiom-ios-ui

github.com/charleswiltgen设计与 UI1.2k213 次安装今天更新
代码仓库

关于 axiom-ios-ui

axiom-ios-ui 是用于 iOS 界面工作的路由技能,涵盖 SwiftUI、UIKit、设计、无障碍和测试。它根据问题类型推荐相应技能或审查 Agent。

主要功能

  1. 01路由 SwiftUI 和 UIKit 问题
  2. 02涵盖布局、导航与动画
  3. 03指引设计和无障碍问题
  4. 04推荐自动化审查 Agent

适用场景

  1. 01查找 SwiftUI 布局问题的指引
  2. 02选择 UIKit 桥接相关技能
  3. 03审查导航或无障碍流程

安装

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

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-ios-ui

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

详细介绍

iOS UI 路由器

任何 iOS UI 工作都必须使用此技能,包括 SwiftUI、UIKit、布局、导航、动画和设计。

适用场景

在处理以下内容时使用此路由器:

  • SwiftUI 视图、状态、绑定
  • UIKit 视图和约束
  • 布局问题(Auto Layout、SwiftUI 布局)
  • 导航(NavigationStack、深度链接)
  • 动画和过渡
  • Liquid Glass 设计(iOS 26+)
  • Apple 人机界面指南
  • UI 架构和模式
  • UI 无障碍问题

冲突解决

ios-ui 与 ios-performance:当 UI 运行缓慢时(例如,“SwiftUI List 很慢”):

  1. 先尝试 ios-ui — 特定领域的修复(LazyVStack、视图标识、@State 优化)通常能在 5 分钟内解决 UI 性能问题
  2. 只有在领域修复无效时才使用 ios-performance — 性能分析耗时更长,而且可能只是确认领域知识已知的问题

理由:已知的 SwiftUI 模式就能解决的问题,没必要一开始就用 Instruments 浪费时间。先尝试领域修复,再进行性能分析。

路由逻辑

SwiftUI 问题

视图不更新 → /skill axiom-swiftui-debugging 导航问题 → /skill axiom-swiftui-nav 性能/延迟 → /skill axiom-swiftui-performance 布局问题 → /skill axiom-swiftui-layout 堆栈/网格/大纲 → /skill axiom-swiftui-containers-ref 动画问题 → /skill axiom-swiftui-animation-ref 手势冲突 → /skill axiom-swiftui-gestures 拖放、复制/粘贴、共享 → /skill axiom-transferable-ref 架构/可测试性 → /skill axiom-swiftui-architecture 应用级组合 → /skill axiom-app-composition 搜索实现 → /skill axiom-swiftui-search-ref iOS 26 功能 → /skill axiom-swiftui-26-ref UIKit 桥接(Representable、HostingController) → /skill axiom-uikit-bridging

UIKit 问题

Auto Layout 冲突 → /skill axiom-auto-layout-debugging 动画时序问题 → /skill axiom-uikit-animation-debugging 嵌入 SwiftUI(HostingController、HostingConfiguration) → /skill axiom-uikit-bridging

设计与指南

采用 Liquid Glass → /skill axiom-liquid-glass SF Symbols(效果、渲染、自定义) → /skill axiom-sf-symbols 设计决策 → /skill axiom-hig 排版 → /skill axiom-typography-ref TextKit/富文本 → /skill axiom-textkit-ref

tvOS

焦点引擎、遥控器输入、TVUIKit、文本输入 → /skill axiom-tvos

无障碍

VoiceOver、动态字体 → /skill axiom-accessibility-diag

测试

UI 测试不稳定 → /skill axiom-ui-testing

自动扫描

架构审计 → 启动 swiftui-architecture-auditor Agent(关注点分离、视图中的逻辑、可测试性) 性能扫描 → 启动 swiftui-performance-analyzer Agent 或 /axiom:audit swiftui-performance(视图 body 中开销大的操作、不必要的更新) 导航审计 → 启动 swiftui-nav-auditor Agent 或 /axiom:audit swiftui-nav(深度链接缺失、状态恢复、容器错误) 布局审计 → 启动 swiftui-layout-auditor Agent 或 /axiom:audit swiftui-layout(误用 GeometryReader、缺少自适应布局、硬编码断点、标识丢失) UX 流程审计 → 启动 ux-flow-auditor Agent 或 /axiom:audit ux-flow(流程死胡同、无法关闭的界面、被隐藏的 CTA、缺少空状态/加载状态/错误状态) Liquid Glass 扫描 → 启动 liquid-glass-auditor Agent 或 /axiom:audit liquid-glass(采用机会、工具栏改进) TextKit 扫描 → 启动 textkit-auditor Agent 或 /axiom:audit textkit(回退到 TextKit 1、已弃用的字形 API、Writing Tools)

决策树

digraph ios_ui {
    start [label="UI issue" shape=ellipse];
    is_tvos [label="tvOS?" shape=diamond];
    is_swiftui [label="SwiftUI?" shape=diamond];
    is_uikit [label="UIKit?" shape=diamond];
    is_design [label="Design/guidelines?" shape=diamond];

    start -> is_tvos;
    is_tvos -> "axiom-tvos" [label="focus, remote, TVUIKit, text input, storage"];
    is_tvos -> is_swiftui [label="no"];
    is_swiftui -> swiftui_type [label="yes"];
    is_swiftui -> is_uikit [label="no"];
    is_uikit -> uikit_type [label="yes"];
    is_uikit -> is_design [label="no"];
    is_design -> design_type [label="yes"];
    is_design -> "accessibility-diag" [label="accessibility"];

    swiftui_type [label="What's wrong?" shape=diamond];
    swiftui_type -> "swiftui-debugging" [label="view not updating"];
    swiftui_type -> "swiftui-nav" [label="navigation"];
    swiftui_type -> "swiftui-performance" [label="slow/lag"];
    swiftui_type -> "swiftui-layout" [label="adaptive layout"];
    swiftui_type -> "swiftui-containers-ref" [label="stacks/grids/outlines"];
    swiftui_type -> "swiftui-architecture" [label="feature architecture"];
    swiftui_type -> "app-composition" [label="app-level (root, auth, scenes)"];
    swiftui_type -> "swiftui-animation-ref" [label="animations"];
    swiftui_type -> "swiftui-gestures" [label="gestures"];
    swiftui_type -> "transferable-ref" [label="drag/drop, sharing, copy/paste"];
    swiftui_type -> "swiftui-search-ref" [label="search"];
    swiftui_type -> "swiftui-26-ref" [label="iOS 26 features"];
    swiftui_type -> "uikit-bridging" [label="UIKit interop"];
    swiftui_type -> "ux-flow-audit" [label="UX dead ends, dismiss traps"];

    uikit_type [label="UIKit issue?" shape=diamond];
    uikit_type -> "auto-layout-debugging" [label="Auto Layout"];
    uikit_type -> "uikit-animation-debugging" [label="animations"];
    uikit_type -> "uikit-bridging" [label="SwiftUI embedding"];
    uikit_type -> "ux-flow-audit" [label="UX dead ends, dismiss traps"];

    design_type [label="Design topic?" shape=diamond];
    design_type -> "liquid-glass" [label="Liquid Glass"];
    design_type -> "sf-symbols" [label="SF Symbols"];
    design_type -> "hig" [label="HIG compliance"];
    design_type -> "typography-ref" [label="typography"];
    design_type -> "textkit-ref" [label="TextKit/rich text"];
}

自动化扫描 Agent:

  • 想进行架构审查(关注点分离、可测试性)?→ swiftui-architecture-auditor (Agent)
  • 想扫描 SwiftUI 性能(视图 body 操作、不必要的更新)?→ swiftui-performance-analyzer (Agent)
  • 想审查导航(深层链接、状态恢复)?→ swiftui-nav-auditor (Agent)
  • 想审查布局(GeometryReader、自适应、硬编码尺寸)?→ swiftui-layout-auditor (Agent)
  • 想审查 UX 流程(死胡同、无法关闭的困境、缺失状态)?→ ux-flow-auditor (Agent)
  • 想扫描 Liquid Glass 的采用情况?→ liquid-glass-auditor (Agent)
  • 想扫描 TextKit(Writing Tools、已弃用的 API)?→ textkit-auditor (Agent)

反合理化

想法事实
“SwiftUI 布局很简单,不需要布局技能”SwiftUI 布局有 12 个陷阱。swiftui-layout 涵盖了所有陷阱。
“我知道 NavigationStack 怎么用”导航涉及状态恢复、深层链接和身份陷阱。swiftui-nav 能避免耗时 2 小时的调试。
“只是视图没有更新,我自己调试就行”视图更新失败有 4 个根本原因。swiftui-debugging 可在 5 分钟内诊断问题。
“我先加上 .animation(),之后再修”动画问题会层层累积。swiftui-animation-ref 提供了正确的模式。
“这个 UI 很简单,不需要架构设计”即使是小功能,也能从关注点分离中受益。swiftui-architecture 能避免重构债务。
“UX 问题只是表面修饰,以后再改”死胡同和无法关闭的困境会导致 1 星评价。ux-flow-audit 几分钟内就能发现这些问题。
“我知道 .searchable 怎么用”搜索有 6 个陷阱(导航容器、isSearching 的层级、建议项完成操作)。swiftui-search-ref 涵盖了所有陷阱。
“我知道 SF Symbols,它就是 Image(systemName:)”4 种渲染模式、12 种以上效果、3 种 Draw 播放模式,以及自定义符号创作。sf-symbols 为所有这些情况提供了决策树。
“拖放就是 .draggable 和 .dropDestination”UTType 声明、表示顺序、文件生命周期、跨应用传输陷阱。transferable-ref 涵盖了所有这些情况。
“我很快就把这个 UIView 包装一下”UIViewRepresentable 涉及生命周期、协调器、尺寸调整和内存陷阱。uikit-bridging 能避免持续 1–2 小时的调试。
“tvOS 就是电视上的 iOS”tvOS 没有持久存储、没有 WebView,具有双重焦点系统,并有两代遥控器。axiom-tvos 涵盖了所有陷阱。

示例调用

用户:“我更改模型时,SwiftUI 视图没有更新” → 调用:/skill axiom-swiftui-debugging

用户:“如何在工具栏中实现 Liquid Glass?” → 调用:/skill axiom-liquid-glass

用户:“NavigationStack 意外弹出了” → 调用:/skill axiom-swiftui-nav

用户:“这个 SwiftUI 应用该使用 MVVM 吗?” → 调用:/skill axiom-swiftui-architecture

用户:“如何在登录界面和主界面之间切换?” → 调用:/skill axiom-app-composition

用户:“应用中的身份验证状态应该放在哪里?” → 调用:/skill axiom-app-composition

用户:“如何使用 LazyVGrid 创建网格布局?” → 调用:/skill axiom-swiftui-containers-ref

用户:“VStack 和 LazyVStack 有什么区别?” → 调用:/skill axiom-swiftui-containers-ref

用户:“如何使用 OutlineGroup 显示分层数据?” → 调用:/skill axiom-swiftui-containers-ref

用户:“如何为 SwiftUI 列表添加搜索功能?” → 调用:/skill axiom-swiftui-search-ref

用户:“我的搜索建议无法正常工作” → 调用:/skill axiom-swiftui-search-ref

用户:“如何在点按时为 SF Symbol 添加动画?” → 调用:/skill axiom-sf-symbols

用户:“我的自定义符号上的 SF Symbol Draw 动画无法正常工作” → 调用:/skill axiom-sf-symbols

用户:“工具栏图标应该使用哪种渲染模式?” → 调用:/skill axiom-sf-symbols

用户:“如何让我的模型在 SwiftUI 中可拖动?” → 调用:/skill axiom-transferable-ref

用户:“如何使用自定义预览添加 ShareLink?” → 调用:/skill axiom-transferable-ref

用户:“如何在 SwiftUI 中封装 UIKit 视图?” → 调用:/skill axiom-uikit-bridging

用户:“如何在我的 UIKit 应用中嵌入 SwiftUI?” → 调用:/skill axiom-uikit-bridging

用户:“我的 UIViewRepresentable 无法正确更新” → 调用:/skill axiom-uikit-bridging

用户:“如何在 collection view 单元格中使用 UIHostingConfiguration?” → 调用:/skill axiom-uikit-bridging

用户:“我正在开发 tvOS 应用,但焦点导航无法正常工作” → 调用:/skill axiom-tvos

用户:“如何在 tvOS 上处理文本输入?” → 调用:/skill axiom-tvos

用户:“检查我的应用是否存在 UX 流程死胡同和无法关闭的陷阱” → 调用:ux-flow-auditor Agent

用户:“检查我的 SwiftUI 架构是否做到了关注点分离” → 调用:swiftui-architecture-auditor Agent

用户:“扫描我的 SwiftUI 视图,查找性能问题” → 调用:swiftui-performance-analyzer Agent

用户:“审查我的导航是否存在深层链接缺口” → 调用:swiftui-nav-auditor Agent

用户:“检查我的布局是否存在 iPad 和多任务处理问题” → 调用:swiftui-layout-auditor Agent

用户:“检查我的应用有哪些采用 Liquid Glass 的机会” → 调用:liquid-glass-auditor Agent

用户:“为什么我的文本视图中没有显示 Writing Tools?” → 调用:textkit-auditor Agent

评论

支持 Markdown