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 Could this large view body be split into smaller, reusable Views? Is modifier order intentional? (padding -> background -> frame) Is @StateObject/@ObservedObject usage correct for ownership? Could LazyVStack improve this ScrollView's performance? Would VoiceOver users understand this interface?
swiftui-code-review
安装
npx skills add https://github.com/existential-birds/beagle --skill swiftui-code-review