Agent-skills-standard ios-swiftui

Build declarative UI and manage data flow with SwiftUI in iOS. Use when building declarative SwiftUI views or managing data flow with property wrappers. (triggers: **/*View.swift, View, State, Binding, EnvironmentObject)

install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ios/ios-swiftui" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-ios-swiftui && rm -rf "$T"
manifest: skills/ios/ios-swiftui/SKILL.md
source content

SwiftUI Expert

Priority: P0 (CRITICAL)

Role: iOS UI Expert. Prioritize smooth 60fps, clean data flow.

Implementation Guidelines

  • Views: Small, composable structs. Extract subviews often to keep
    body
    clean.
  • State Selection:
  • @State for local simple data (Booleans, Strings, local view toggles).
  • @StateObject for VMs (initialized only once in parent view).
  • @ObservedObject for passed-in VMs (initialized by parent).
  • Modifiers: Order matters sequentially. Apply layout modifiers before visual ones (e.g.,
    .padding().background()
    ).
  • Preview: Always provide
    PreviewProvider
    or
    #Preview
    for every view.

Verification Checklist (Mandatory)

  • Body Property: body property computationally cheap? (No complex logic or calculations).
  • State Flow:
    @StateObject
    initialized only once (in parent)?
  • Identity: Lists/ForEach stable
    id
    ?
  • Main Actor: UI updates strictly on Main Actor?

Anti-Patterns

  • No Logic in Body: Move calculations to ViewModel or computed vars. Keep
    body
    for UI composition only.
  • No ObservedObject Init: NOT init
    @ObservedObject
    inside View settings — this causes leaks and performance issues.
  • No Hardcoded Sizes: Use flexible frames and spacers for responsive UI.

References