Swift swiftui
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/swift-swiftui
Standards for State Management, View Lifecycle, and Property Wrappers. Use when managing SwiftUI state, view lifecycle, or property wrappers like @State and @Binding. (triggers: **/*.swift, @State, @Binding, @ObservedObject, View, body)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill swift-swiftuiAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.7 KB, 338 tokens by cl100k_base, as published. Nobody here has run it
SwiftUI Standards
Priority: P0
Implementation Guidelines
State Management
- @State: @State for data owned by the view (e.g., toggle, text input). Private to the view.
- @Binding: @Binding for data passed down from a parent to a child. Two-way connection.
- @ObservedObject: @ObservedObject when receiving an instance from an external source.
- @StateObject: @StateObject when the view is creating the object instance. View owns lifecycle.
- @EnvironmentObject: inject data into the view's hierarchy via
.environmentObject(). Shared across view hierarchy.
View Composition
- Extract Subviews: Keep views small (<200 lines). Extract reusable components.
- View Modifiers: Chain modifiers for styling (
.font(),.padding()). - Custom Modifiers: Create
ViewModifierfor reusable styles.
Performance
- Avoid Heavy Computation: Use
@State+.task()for async work. - Equatable: Conform views to
Equatableto prevent unnecessary re-renders. - LazyStacks: Use
LazyVStack/LazyHStackwhen displaying a large number of views in a scrolling container to load them only as they appear.
Anti-Patterns
- No @ObservedObject for owned objects: Use @StateObject.
- No logic in body: Move to computed properties or methods.
- No ! in View: Use if-let or nil coalescing.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.