Skip to content
Development
Skill

/axiom-uikit

Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations.

From plugin
axiom
1.1k66 skills1 MCP
Install
$ npx -y skills add charleswiltgen/axiom --skill axiom-uikit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/axiom-uikit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations.

SKILL.md

axiom-uikit.SKILL.md
name: axiom-uikit
description: Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations.
license: MIT

UIKit & Bridging

**You MUST use this skill for ANY UIKit bridging, Auto Layout, Combine, TextKit, or UIKit animation work.**

<!-- 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/resize-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 / Task | Reference | |----------------|-----------| | UIViewRepresentable, UIViewControllerRepresentable | See `skills/uikit-bridging.md` | | Embedding SwiftUI in UIKit (UIHostingController) | See `skills/uikit-bridging.md` | | Coordinator pattern, updateUIView lifecycle | See `skills/uikit-bridging.md` | | Building adaptive UIKit layout: guides, width-conditional constraints, compositional layout, self-sizing cells | See `skills/adaptive-layout.md` | | "Unable to simultaneously satisfy constraints" | See `skills/auto-layout-debugging.md` | | Constraint conflicts, ambiguous layout | See `skills/auto-layout-debugging.md` | | Views not appearing, positioned incorrectly | See `skills/auto-layout-debugging.md` | | CAAnimation completion handler not firing | See `skills/uikit-animation-debugging.md` | | Spring physics wrong on device, duration mismatch | See `skills/uikit-animation-debugging.md` | | Animation jank, CATransaction timing | See `skills/uikit-animation-debugging.md` | | Combine publishers, AnyCancellable lifecycle | See `skills/combine-patterns.md` | | @Published properties, Combine ↔ async/await | See `skills/combine-patterns.md` | | When to use Combine vs async/await | See `skills/combine-patterns.md` | | UIScene lifecycle required, resizable apps, size classes, tab sidebar `OS27` | See `skills/uikit-modernization.md` | | iPhone Mirroring compat: indirect input, companion Face ID, portrait trap | See `skills/uikit-modernization.md` | | Scene edges: teardown, activation requests, per-scene restoration, external display, activeAppearance | See `skills/uikit-modernization.md` | | Automated resize-readiness scan (scene lifecycle, UIScreen.main, fixed-canvas, Mirroring input) | Launch `resize-auditor` agent or `/axiom:audit resize` | | TextKit 2 architecture, NSTextLayoutManager | See `skills/textkit-ref.md` | | Writing Tools integration (iOS 26) | See `skills/textkit-ref.md` | | Viewport rendering surfaces, attachment reuse, collapsible text `OS27` | See `skills/textkit-ref.md` | | SwiftUI TextEditor, TextKit 1 migration | See `skills/textkit-ref.md` | | PencilKit canvas, PKToolPicker, drawing persistence | See `skills/pencilkit-paperkit.md` | | Apple Pencil Pro (squeeze, barrel roll, hover, haptics) | See `skills/pencilkit-paperkit.md` | | Handwriting recognition (PKStrokeRecognizer), stroke identity/slicing `OS27` | See `skills/pencilkit-paperkit-ref.md` | | PaperKit markup canvas (shapes, images, text + drawing) | See `skills/pencilkit-paperkit-ref.md` | | PaperKit programmatic markup model (subelements, adornments) `OS27` | See `skills/pencilkit-paperkit-ref.md` |

Decision Tree

digraph uikit {
    start [label="UIKit task" shape=ellipse];
    what [label="What do you need?" shape=diamond];

    start -> what;
    what -> "skills/uikit-bridging.md" [label="wrap UIKit in SwiftUI\nor SwiftUI in UIKit"];
    what -> "skills/adaptive-layout.md" [label="build adaptive layout\n(guides, constraint sets,\ncompositional)"];
    what -> "skills/auto-layout-debugging.md" [label="constraint errors,\nlayout issues"];
    what -> "skills/uikit-animation-debugging.md" [label="CAAnimation bugs,\nspring physics,\ncompletion handlers"];
    what -> "skills/combine-patterns.md" [label="publishers, sinks,\n@Published,\nasync/await bridge"];
    what -> "skills/textkit-ref.md" [label="text layout,\nWriting Tools,\nTextKit migration"];
    what -> "skills/pencilkit-paperkit.md" [label="drawing canvas,\nApple Pencil,\nPaperKit markup"];
    what -> "skills/uikit-modernization.md" [label="scene lifecycle (required 27),\nresizable apps,\nsize classes"];
}

0. Scene-lifecycle migration, "app won't launch on 27", resizability, size classes, tab sidebar? → `skills/uikit-modernization.md` 0b. App misbehaves in iPhone Mirroring (gestures dead, Face ID blocked, layout stuck portrait)? → `skills/uikit-modernization.md` 1. UIViewRepresentable / UIViewControllerRepresentable / UIHostingController? → `skills/uikit-bridging.md` 2. "Unable to simultaneously satisfy constraints" / layout bugs? → `skills/auto-layout-debugging.md` 2b. Building a layout that adapts (layout guides, size-class constraint sets, compositional column math, self-sizing cells)? → `skills/adaptive-layout.md` 3. CAAnimation completion missing / spring physics wrong / animation jank? → `skills/uikit-animation-debugging.md` 4. Combine publishers / AnyCancellable / @Published / Combine ↔ async bridge? → `skills/combine-patterns.md` 5. TextKit 2 / Writing Tools / TextEditor / TextKit 1 migration? → `skills/textkit-ref.md` 6. PencilKit canvas / Apple Pencil / PaperKit markup? → `skills/pencilkit-paperkit.md` 7. Pure SwiftUI view question (no UIKit bridging)? → `/skill axiom-swiftui` 8. Design decisions, HIG, Liquid Glass, SF Symbols, typography? → `/skill axiom-design` 9. Block retain cycles in UIKit callbacks? → See axiom-performance (`skills/objc-block-retain-cycles.md`) 10. Memory leaks from Combine subscriptions? → Start with `skills/combine-patterns.md`, then axiom-performance if leak persists

Conflict Resolution

**uikit vs swiftui**

Read more
Ships withaxiom

Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.

Get the whole plugin