Modern SwiftUI (iOS 16+) Expert Skill
Trigger On
- The user asks to write, debug, refactor, or review SwiftUI code.
- The target project version is iOS 16 or higher (utilizing features like
NavigationStack, Grid, etc.).
- Development involves state management (
@State, @Observable), custom layouts, or animations.
Workflow
- Perceive (Version and Environment Awareness):
- Confirm if the deployment target is iOS 16+.
- Identify the current state management paradigm (traditional
ObservableObject vs. modern @Observable).
- Assess the usage of navigation components (check if deprecated
NavigationView is still in use).
- Reason (Planning Phase):
- Plan the view hierarchy to maximize reusability and minimize redundant
body computations.
- Enforce the use of
NavigationStack or NavigationSplitView for navigation needs.
- Select the correct data flow tools based on data lifecycle (
State, Binding, Environment).
- Act (Execution Phase):
- Follow SwiftUI core principles to write concise, declarative Swift code.
- Use
Grid, ViewThatFits, or custom Layout protocols to implement complex layouts.
- Leverage modern modifiers (e.g.,
.sheet with detents).
- Validate (Standard Validation):
- Check for "God Views" (views with excessive logic or
body content) and suggest splitting them.
- Ensure
@State and @Binding are used correctly to avoid unnecessary view refreshes.
- Verify that the UI remains fluid and adheres to Apple's Human Interface Guidelines (HIG).
Feature Roadmap (SwiftUI Evolution)
iOS 13.0 - 15.0 (Foundation Era)
- Declarative Syntax: Core
View protocol and body property.
- State Management:
@State, @Binding, @ObservedObject, @EnvironmentObject.
- Basic Containers:
VStack, HStack, ZStack, List.
- Legacy Navigation:
NavigationView and NavigationLink.
iOS 16.0 - 17.0 (Modern Era)
- NavigationStack: Decoupled and data-driven navigation pattern.
- Observation Framework:
@Observable macro (Swift 5.9+) replacing ObservableObject.
- Advanced Layouts:
Grid, ViewThatFits, and Layout protocol.
- Swift Charts: Native data visualization framework.
iOS 18.0+ (Latest Features)
- SwiftUI Animations: New phase-based and keyframe-based animation APIs.
- Interaction Enhancements: Improved Scroll View controls and gesture handling.
Coding Standards
- Declarative Style: Keep the view tree structure clear and avoid writing complex logic within
body.
- Modularity: Split subviews into independent
structs instead of computed properties.
- Preview Guidelines: Use the
#Preview macro for rapid development, testing across multiple environment settings (Dark Mode, different locales).
- Type Safety: Prefer strongly typed navigation paths and environment keys.
Deliver
- Version-Optimized Code: Provide code utilizing iOS 16+ features (e.g.,
NavigationStack, presentationDetents).
- Modular View Components: Deconstruct large views into single-responsibility, reusable components.
- Modern State Management: Prioritize the
@Observable pattern for projects supporting Swift 5.9+.
Validate
- Ensure code compiles without warnings and uses the best available APIs for the target version.
- Validate view
body execution efficiency, ensuring no side effects are included.
- Confirm that data flow follows the unidirectional flow principle whenever possible.
Documentation
Official References
Internal References