Axiom Swiftui

CharlesWiltgen/Axiom/axiom-cursor/skills/axiom-swiftui

作者 CharlesWiltgen82c7feafae634a79b4336b3381289441886c122c无许可证1.1K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库今天更新

Use when building, fixing, or improving ANY SwiftUI UI — views, navigation, layout, animations, gestures, debugging, iOS 26 features, iPhone Duo, view-level performance, feature architecture.

AI 生成的概览

面向 SwiftUI 开发的路由技能:视图、导航、布局、动画、手势、预览、性能与调试。

功能
该技能是 SwiftUI 开发任务的路由索引。它把症状和任务——例如视图不更新、导航问题、布局错乱、预览缓慢、手势冲突、工具栏、弹窗呈现、iOS 26 特性以及 iPhone Duo——映射到 skills 目录中的具体参考文档。它还会把非 SwiftUI 的界面主题指向其他技能套件,并列出自动化审计子代理。它产出的是指引和索引,而不是代码或文件。
适用场景
在构建、修复或改进任何 SwiftUI 界面时使用,包括视图、状态、导航、布局、动画、手势、架构和视图级性能。也适用于诊断 SwiftUI 问题,例如视图不刷新、预览崩溃、滚动卡顿或热重载配置。
运行要求
仅为说明文档,不附带脚本。部分被引用的诊断功能假定 Axiom MCP 集成及其工具(例如 xclog、xcsym、xcprof)可用,部分路由还会引用其他技能套件和子代理。

Cursor MCP Tool Boundary

The xclog, xcsym, and xcprof examples below are reference syntax, not executable commands for Cursor. Map each subcommand to the same-named MCP tool—for example, xclog launch to axiom_xclog_launch, xcsym crash to axiom_xcsym_crash, and xcprof record to axiom_xcprof_record—and preserve its arguments as structured fields. Do not run a bare helper binary. If a required MCP tool is unavailable, stop and report that the Axiom MCP integration is missing; do not fall back to a same-named executable.

SwiftUI

You MUST use this skill for ANY SwiftUI work including views, state, navigation, layout, animations, architecture, gestures, and debugging.

Cursor Subagent Routing

Delegate to the appropriate Cursor subagent when this router calls for a specialized auditor.

Quick Reference

Symptom / TaskReference
View not updatingSee skills/debugging.md
View update still broken after debuggingSee skills/debugging-diag.md
Slow previews / building good previews / @Previewable / PreviewModifier / variant matrixSee skills/previews.md
Preview API reference (#Preview, traits, modes, Development Assets)See skills/previews-ref.md
Preview crashes / won't loadSee skills/debugging.md (Preview Crashes section)
Hot reload / live editing / edit the running app on deviceSee skills/hot-reload.md
Navigation issuesSee skills/nav.md
Navigation still broken after debuggingSee skills/nav-diag.md
Navigation API referenceSee skills/nav-ref.md
Layout breaks on iPad/rotationSee skills/layout.md
State lost on resize/rotation (scroll, selection, focus, drafts)See skills/layout.md (State Survives the Transition)
Layout API referenceSee skills/layout-ref.md
Performance/lag/slow scrollSee skills/swiftui-performance.md
Architecture/testabilitySee skills/architecture.md
@State object rebuilt every view init, or an init assignment ignored at runtimeSee skills/architecture.md (@State is a macro now)
Animation issuesSee skills/animation-ref.md
Stacks/grids/outlinesSee skills/containers-ref.md
Custom containers / List replacement (iOS 18+)See skills/containers-ref.md Part 7
Search implementationSee skills/search-ref.md
Toolbars, ToolbarItem, sheet button placement, customizationSee skills/toolbars.md
Navigation subtitle: navigationSubtitle, .title / .subtitle / .largeTitle / .largeSubtitle placements (iOS 26)See skills/toolbars.md (Pattern 14)
Sheets, detents, popovers, fullScreenCover, presentation adaptationSee skills/presentations.md
Multi-column Table, sortable/resizable columns (iPad/Mac; collapses to first column in compact)See axiom-macos (skills/swiftui-differences.md)
Inspector panel (.inspector — trailing column in regular width, sheet in compact)See axiom-macos (skills/swiftui-differences.md)
Gesture conflictsSee skills/gestures.md
Section index — the vertical A–Z index strip / alphabet scrubber on a list's trailing edge, jump-to-sectionSee skills/26-ref.md (Section Index)
List section margins / insets around a SectionSee skills/26-ref.md (Section Margins)
Web content — WebView / WebPage, scroll modifiers, WebView-in-NavigationStackSee skills/26-ref.md (WebView & WebPage)
iPhone Duo / foldable iPhone: poses, vertical bars, the fold, arrangements, hinge, scene accessories (SwiftUI and UIKit)See skills/iphone-duo.md
iOS 26 featuresSee skills/26-ref.md

Non-SwiftUI UI Routes

These topics are part of the broader iOS UI domain but live in separate suites:

UIKit issues
  • Auto Layout conflicts → See axiom-uikit (skills/auto-layout-debugging.md)
  • Animation timing → See axiom-uikit (skills/uikit-animation-debugging.md)
  • SwiftUI ↔ UIKit bridging → See axiom-uikit (skills/uikit-bridging.md)
Design & guidelines
  • Liquid Glass adoption → See axiom-design (skills/liquid-glass.md)
  • SF Symbols → See axiom-design (skills/sf-symbols.md)
  • HIG compliance → See axiom-design (skills/hig.md)
  • Typography → See axiom-design (skills/typography-ref.md)
  • TextKit/rich text → See axiom-uikit (skills/textkit-ref.md)
Other
  • tvOS (focus, remote, text input) → See axiom-swift (skills/tvos.md)
  • App-level composition (root, auth, scenes) → See axiom-design (skills/app-composition.md)
  • Drag/drop, sharing, copy/paste → See axiom-swift (skills/transferable-ref.md)
  • VoiceOver, Dynamic Type → /skill axiom-accessibility
  • UI test flakiness → /skill axiom-testing
  • UX dead ends, dismiss traps → Delegate to the ux-flow-auditor subagent
watchOS-specific patterns
  • Glanceable UI, watch navigation, Smart Stack widgets → See axiom-watchos

Conflict Resolution

axiom-swiftui vs axiom-performance: When UI is slow (e.g., "SwiftUI List slow"):

  1. Try axiom-swiftui FIRST — Domain-specific fixes (LazyVStack, view identity, @State optimization) often solve UI performance in 5 minutes
  2. Only use axiom-performance if domain fixes don't help — Profiling takes longer and may confirm what domain knowledge already knows

Decision Tree

dot
digraph swiftui {    start [label="SwiftUI issue" shape=ellipse];    what [label="What's wrong?" shape=diamond];
    start -> what;    what -> "skills/debugging.md" [label="view not updating"];    what -> "skills/nav.md" [label="navigation"];    what -> "skills/swiftui-performance.md" [label="slow/lag"];    what -> "skills/layout.md" [label="adaptive layout"];    what -> "skills/containers-ref.md" [label="stacks/grids/outlines"];    what -> "skills/architecture.md" [label="feature architecture"];    what -> "skills/animation-ref.md" [label="animations"];    what -> "skills/gestures.md" [label="gestures"];    what -> "skills/search-ref.md" [label="search"];    what -> "skills/toolbars.md" [label="toolbars / sheet buttons"];    what -> "skills/presentations.md" [label="sheets/detents/popovers"];    what -> "skills/26-ref.md" [label="iOS 26 features"];    what -> "skills/iphone-duo.md" [label="iPhone Duo / foldable"];    what -> "skills/previews.md" [label="slow previews / building good previews"];    what -> "skills/previews-ref.md" [label="preview API reference"];    what -> "skills/debugging.md" [label="preview crashes / won't load"];    what -> "skills/hot-reload.md" [label="hot reload / live editing"];    what -> "axiom-macos (skills/swiftui-differences.md)" [label="Table / .inspector\n(large-window density)"];    what -> "axiom-uikit (skills/uikit-bridging.md)" [label="UIKit interop"];    what -> "axiom-design (skills/app-composition.md)" [label="app-level (root, auth)"];    what -> "axiom-swift (skills/transferable-ref.md)" [label="drag/drop, sharing"];}

Automated Scanning

  • Architecture audit → Delegate to the swiftui-architecture-auditor subagent
  • Performance scan → Delegate to the swiftui-performance-analyzer subagent or /axiom-audit swiftui-performance
  • Navigation audit → Delegate to the swiftui-nav-auditor subagent or /axiom-audit swiftui-nav
  • Layout audit → Delegate to the swiftui-layout-auditor subagent or /axiom-audit swiftui-layout
  • UX flow audit → Delegate to the ux-flow-auditor subagent or /axiom-audit ux-flow
  • Liquid Glass scan → Delegate to the liquid-glass-auditor subagent or /axiom-audit liquid-glass (detects migration opportunities AND adoption-completeness gaps: variant discipline for media surfaces, glass-on-glass nesting, unstyled pre-26 fallbacks, semantic toolbar placement, Tab(role: .search), the UIDesignRequiresCompatibility opt-out; scores ADOPTED / PARTIAL / NOT ADOPTED)
  • TextKit scan → Delegate to the textkit-auditor subagent or /axiom-audit textkit (detects fallback triggers, glyph APIs that corrupt complex scripts, missing Writing Tools wiring, AND architectural gaps like missing fallback observation, SwiftUI wrappers dropping TextKit 2 properties, missing isWritingToolsActive guards; scores MODERN / MIXED / LEGACY)

Anti-Rationalization

ThoughtReality
"Simple SwiftUI layout, no need"SwiftUI layout has 12 gotchas. skills/layout.md covers all of them.
"I know how NavigationStack works"Navigation has state restoration, deep linking, and identity traps. skills/nav.md prevents 2-hour debugging.
"It's just a view not updating"View update failures have 4 root causes. skills/debugging.md diagnoses in 5 min.
"I'll just add .animation()"Animation issues compound. skills/animation-ref.md has the correct patterns.
"No architecture needed"Even small features benefit from separation. skills/architecture.md prevents refactoring debt.
"I know .searchable"Search has 6 gotchas. skills/search-ref.md covers all of them.
"I'll just add a Done button"Sheets without Cancel break the HIG (updated 2026-03-24). .cancellationAction / .confirmationAction produce HIG-correct placement automatically — skills/toolbars.md Pattern 2 has the rules.
"A sheet is a sheet, nothing to configure"Detents, compact adaptation, background interaction, and iOS 18 sizing decide how it behaves across window shapes. skills/presentations.md covers the adaptation traps (landscape sheets silently become full-screen covers).
"Previews are slow forever, I'll just use the simulator"Five concrete fixes in skills/previews.md. Rule 4 (auto-refresh off) is 30 seconds and often halves perceived slowness.
"@State is lazy in Xcode 27, I read the release notes"Only when the property is private/fileprivate and the deployment target is iOS 17 or later — below 17 the private case silently keeps the old eager behavior. skills/architecture.md has the gate, the three TN3211 breaks, and the one that compiles and is wrong at runtime.
"I'll just write a wrapper view for @State in this preview"@Previewable @State (Xcode 16+) eliminates that boilerplate. skills/previews-ref.md has the macro signature.
"I'll just rebuild and relaunch every time"Hot reload edits the running app in place, state preserved. skills/hot-reload.md has the InjectionNext + Inject setup and the verify-via-xclog loop.
"Duo is just a bigger iPhone; my layout already resizes"Bars move to the side, the fold divides the screen, and the outer display can't open windows. skills/iphone-duo.md covers what resizing alone misses.

来源与署名

来源:CharlesWiltgen/Axiom位于axiom-cursor/skills/axiom-swiftui提交82c7fea

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架