skills/existential-birds/beagle/swiftui-code-review

swiftui-code-review

SKILL.md

SwiftUI Code Review

Quick Reference

Issue Type Reference
View extraction, modifiers, body complexity references/view-composition.md
@State, @Binding, @Observable, @Bindable references/state-management.md
LazyStacks, AnyView, ForEach, identity references/performance.md
VoiceOver, Dynamic Type, labels, traits references/accessibility.md

Review Checklist

  • View body under 10 composed elements (extract subviews)
  • Modifiers in correct order (padding before background)
  • @StateObject for view-owned objects, @ObservedObject for passed objects
  • @Bindable used for two-way bindings to @Observable (iOS 17+)
  • LazyVStack/LazyHStack for scrolling lists with 50+ items
  • No AnyView (use @ViewBuilder or generics instead)
  • ForEach uses stable Identifiable IDs (not array indices)
  • All images/icons have accessibilityLabel
  • Custom controls have accessibilityAddTraits(.isButton)
  • Dynamic Type supported (no fixed font sizes)
  • .task modifier for async work (not onAppear + Task)

When to Load References

  • Complex view bodies or modifier chains -> view-composition.md
  • Property wrapper usage (@State, @Observable) -> state-management.md
  • List performance or view identity issues -> performance.md
  • VoiceOver or accessibility implementation -> accessibility.md

Review Questions

  1. Could this large view body be split into smaller, reusable Views?
  2. Is modifier order intentional? (padding -> background -> frame)
  3. Is @StateObject/@ObservedObject usage correct for ownership?
  4. Could LazyVStack improve this ScrollView's performance?
  5. Would VoiceOver users understand this interface?
Weekly Installs
51
First Seen
14 days ago
Installed on
claude-code43
gemini-cli37
codex36
opencode34
cursor32
antigravity31