LaunchKit · 2026
Back to Skills

swiftui-view-refactor

Refactor and review SwiftUI view files.

6
2.3k downloads
by @steipete

Setup & Installation

openclaw skills install @steipete/swiftui-view-refactor

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install swiftui-view-refactor

What This Skill Does

Applies consistent structure and dependency patterns to SwiftUI view files. Enforces a standard member ordering, promotes Model-View patterns over view models, and standardizes how @Observable state is initialized and passed through views.

Enforces structural conventions that SwiftUI's own documentation leaves implicit, making large codebases easier to navigate and review consistently.

When to use it

  • Reordering a SwiftUI view's properties and methods into a consistent declaration order
  • Replacing an optional view model with a non-optional @State initialized in the view's init
  • Breaking a large body into smaller subviews or computed view properties
  • Standardizing how dependencies are injected through view initializers
  • Auditing @Observable usage to remove redundant wrappers or optional state

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: Clean up this SwiftUI view — it has an optional view model, a huge body, and properties declared in random order

AGENT
  1. 1Reorder view members: environment values first, then let properties, @State, computed vars, init, body, and helpers last
  2. 2Locate the optional view model and replace it with a non-optional @State property initialized in the view's init using passed dependencies
  3. 3Split the large body into extracted computed view properties or dedicated View structs where sections have distinct logic
  4. 4Verify @Observable types are stored as @State at root and passed down explicitly without redundant wrappers
  5. 5Confirm no layout or business logic changed from the original
OUTPUT

Refactored SwiftUI view with standard member ordering, non-optional @State view model, and a decomposed body that delegates to named subviews