Axiom Swiftui

charleswiltgen/axiom/.claude-plugin/plugins/axiom/skills/axiom-swiftui

作者 charleswiltgene45d98ffbb5fMIT1.1K 個星標收錄於 2026年10月9日更新於 2026年10月8日儲存庫今天更新

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 工作(檢視、導覽、版面、動畫、手勢、除錯、預覽與 iOS 26 功能)導向參考檔案與稽核器。

功能
這是一項面向 SwiftUI 開發的路由與參考技能。它把症狀與任務(例如檢視未更新、導覽問題、版面錯亂、預覽緩慢或手勢衝突)對應到套件中的具體參考文件,並指向用於架構、效能、導覽、版面、UX 流程、Liquid Glass 與 TextKit 掃描的自動化稽核代理。它也列出屬於其他套件的非 SwiftUI UI 主題,並提供 UI 效能工作的衝突解決指引。
適用情境
在建立、修正或改善任何 SwiftUI 介面時使用,包括檢視、狀態、導覽、版面、動畫、手勢、預覽與 iOS 26 功能。它也是判斷某個 SwiftUI 問題該查閱哪份參考或哪個稽核器的入口。
執行需求
僅為說明性內容,不附帶指令碼。部分被引用的稽核代理需要 Bash、建置、測試、模擬器或當機符號化,被說明為僅限 Claude Code;其他代理可僅透過檔案搜尋與讀取以內嵌方式執行。

SwiftUI

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

<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit -->

Not on Claude Code? Where this router says "Launch some-auditor agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.

Available here: skills/swiftui-architecture-auditor.md, skills/swiftui-layout-auditor.md, skills/swiftui-nav-auditor.md, skills/swiftui-performance-analyzer.md, skills/textkit-auditor.md, skills/ux-flow-auditor.md. Homed in another suite: axiom-design/skills/liquid-glass-auditor.md.

Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.

<!-- AXIOM_AUDITOR_INLINE_END -->

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 → Launch ux-flow-auditor agent
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 → Launch swiftui-architecture-auditor agent
  • Performance scan → Launch swiftui-performance-analyzer agent or /axiom:audit swiftui-performance
  • Navigation audit → Launch swiftui-nav-auditor agent or /axiom:audit swiftui-nav
  • Layout audit → Launch swiftui-layout-auditor agent or /axiom:audit swiftui-layout
  • UX flow audit → Launch ux-flow-auditor agent or /axiom:audit ux-flow
  • Liquid Glass scan → Launch liquid-glass-auditor agent 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 → Launch textkit-auditor agent 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位於.claude-plugin/plugins/axiom/skills/axiom-swiftui提交e45d98f

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架