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.2k69 skills42 agents17 commands1 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 — rewritten for Codex by scripts/build-codex.ts; do not hand-edit --> > **Auditors are skills here.** Where this router says "Launch `some-auditor` agent", invoke the > matching Codex skill instead — same procedure, no Claude Code agent required. > > Available: `axiom-audit-resize`. > > The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run. <!-- 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) | `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**: When working with UI code:

  • **Use uikit** when wrapping UIKit in SwiftUI or vice versa, or debugging UIKi
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

Other skills on axiom.