CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

swiftui-uikit-interop

Bridges UIKit and SwiftUI with representables, hosting controllers/configurations, coordinators, and shared observable state. Use for wrapping UIKit or third-party views/controllers, embedding SwiftUI in UIKit, system controller surfaces, or incremental UIKit-to-SwiftUI migration.

Quality

84%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, token-efficient interop guide with concrete API-level guidance, clear sequences, and exemplary progressive disclosure that routes tasks to real one-level-deep reference files. The main costs are the version-stamped iOS 27 details inlined in the body and the absence of one complete representable example up front.

Suggestions

Move the version-stamped iOS 27/27.1 details into a dated reference file (e.g., references/ios27-updates.md) or a clearly scoped "What changed" reference so the SKILL.md body stays evergreen and token-cheap.

Include one minimal, complete UIViewRepresentable example (struct + coordinator + equality-guarded updateUIView) in the body so the core pattern is copy-paste ready before opening a reference file.

Tighten the "iOS 27 Updates" bullet list by dropping items (menus, external displays, drag) that belong in the task-routed references, keeping only the launch-critical life-cycle change inline.

DimensionReasoningScore

Conciseness

The body is lean — a compact lifecycle flow, one-line API glosses, a single-line guard snippet, and terse mistake/checklist bullets with no padding of concepts Claude already knows. It is docked from 5 because the "iOS 27 Updates" section carries version-stamped details ("iOS 27.1+", "September 2026 UIKit updates") that are time-sensitive and not confined to a deprecated/old-patterns section.

4 / 5

Actionability

Concrete guidance throughout: exact lifecycle methods with responsibilities ("makeCoordinator()", "dismantleUIView(_:coordinator:)"), an executable guard (`if uiView.text != text { uiView.text = text }`), and the four exact containment calls (addChild, addSubview, constraints, didMove(toParent:)). Not a 5 because the body contains no complete, copy-paste-ready representable example — full recipes are delegated to the reference files.

4 / 5

Workflow Clarity

Sequences are clear: the ordered lifecycle chain and the numbered 1–4 child-view-controller containment steps, reinforced by a Review Checklist and an explicit warning about feedback loops. It sits below 5 because checkpoints like the equality guard are stated as warnings rather than embedded validation steps, and there is no error-recovery loop — though the skill involves no destructive or batch operations that would demand one.

4 / 5

Progressive Disclosure

The body is a genuine overview: a "Route by Task" section maps specific needs (MKMapView, PHPicker, PDFView, hosting migration) to the four real, one-level-deep reference files, which exist in the bundle and contain no nested references, and a References section repeats the links plus official docs. This matches the top anchor of a clear overview with well-signaled, easy-to-navigate references.

5 / 5

Total

17

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong third-person description that explicitly states both what the skill does and when to use it, with mostly natural trigger phrasing. Its only weaknesses are the vague "system controller surfaces" clause and omission of the concrete API names (UIViewRepresentable, UIHostingController) users often cite by name.

DimensionReasoningScore

Specificity

"Bridges UIKit and SwiftUI with representables, hosting controllers/configurations, coordinators, and shared observable state" plus "wrapping UIKit or third-party views/controllers, embedding SwiftUI in UIKit, ... incremental UIKit-to-SwiftUI migration" lists several specific capabilities covering the interop domain. It falls short of a 5 because "system controller surfaces" is vague and the what-clause leans on mechanism nouns rather than concrete actions.

4 / 5

Completeness

The what is explicit ("Bridges UIKit and SwiftUI with representables, hosting controllers/configurations, coordinators, and shared observable state") and the when is explicit with concrete trigger phrases ("Use for wrapping UIKit or third-party views/controllers, embedding SwiftUI in UIKit, system controller surfaces, or incremental UIKit-to-SwiftUI migration"). This matches the top anchor: both questions clearly and explicitly answered; it is not a 4 because the when-clause goes beyond generic guidance with multiple specific trigger scenarios.

5 / 5

Trigger Term Quality

Phrases like "wrapping UIKit or third-party views/controllers", "embedding SwiftUI in UIKit", and "UIKit-to-SwiftUI migration" match what users naturally say when they need this skill. A few natural terms are missing — e.g. "UIViewRepresentable", "UIHostingController", "interop", "bridge" — which users would plausibly mention by name.

4 / 5

Distinctiveness Conflict Risk

The UIKit↔SwiftUI bridging niche is well-defined with distinct triggers (wrapping, embedding, migration), unlikely to fire for unrelated skills. Minor overlap risk remains with general SwiftUI or iOS-development skills, and the vague phrase "system controller surfaces" slightly blurs the boundary, keeping it below a 5.

4 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

thienqo/ios-skills

Path

skills/swiftui-uikit-interop/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.