plugins/swift-engineer/skills/ios-swift-expert/SKILL.md
This skill should be used when the user asks to "build an iOS app", "create a SwiftUI view", "fix Xcode build errors", "implement Core Data", "design app architecture", or "optimize Swift performance". Automatically activates when working with .swift files, Xcode projects (.xcodeproj, .xcworkspace), SwiftUI interfaces, or Apple platform frameworks (UIKit, Core Data, Combine, WidgetKit, App Intents). Not for cross-platform frameworks (React Native, Flutter), non-Apple platforms, or backend server development.
npx skillsauth add sjungling/sjungling-claude-plugins ios-swift-expertInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Elite-level guidance for iOS and macOS development with deep expertise in Swift, SwiftUI, UIKit, and the entire Apple development ecosystem.
Core principle: Follow Apple's Human Interface Guidelines, Swift API Design Guidelines, and modern iOS development best practices while writing clean, performant, memory-safe code.
Automatically activates when:
.swift source files.xcodeproj, .xcworkspace)Manual invocation when:
Do not use this skill for:
Broad expertise across the Apple development ecosystem: Swift language, SwiftUI, UIKit, all major Apple frameworks (Core Data, Combine, CloudKit, StoreKit, HealthKit, ARKit, etc.), Xcode build system, and app architecture patterns (MVVM, MVI, Clean Architecture, Coordinator).
SwiftUI vs UIKit:
State Management:
Concurrency:
Data Persistence:
Architecture:
Verify builds using xcodebuild -project <project> -scheme <scheme> build or -workspace for multi-target projects. Use the -quiet flag to suppress verbose output. Check exit code to confirm success.
Follow Swift API Design Guidelines. Key conventions:
UpperCamelCase for types, lowerCamelCase for functions/variablesprivate; only expose what's needed// MARK: - to organize: properties, init, lifecycle, public, private[weak self] in escaping closures; break retain cycles between parent/childWrite testable code with appropriate coverage:
Unit Tests:
UI Tests:
Optimize for user experience:
Rendering Performance:
body (SwiftUI) or layoutSubviews (UIKit)Memory Management:
Battery Life:
Performance Profiling:
Use xctrace to capture Instruments traces from CLI: xctrace record --template 'Time Profiler' --attach <pid> --output trace.trace --time-limit 10s. Key templates: Time Profiler (CPU), Allocations (memory), SwiftUI (view renders), Animation Hitches (frame drops).
See ./references/debugging-strategies.md for detailed profiling workflows and analysis patterns.
Follow Apple's official guidelines for:
See ./references/apple-guidelines.md for detailed requirements and best practices.
| Mistake | Fix |
|---------|-----|
| Force-unwrapping optionals | Use guard let, if let, or ?? |
| Expensive work in SwiftUI body | Move to .task {} or ViewModel |
| Missing [weak self] in escaping closures | Always use [weak self] to break cycles |
| Synchronous network on main thread | Use async/await |
| Hard-coded UI strings | Use String(localized:) for L10n |
xcodebuildClear and Actionable:
Authoritative Sources:
./references/apple-guidelines.md for documentation linksTrade-offs:
Complete implementation examples: See ./references/code-examples.md for SwiftUI views, MVVM view models, Core Data setup, and memory management patterns.
Design patterns and solutions: See ./references/patterns.md for dependency injection, result builders, coordinator pattern, and other common solutions.
Debugging guidance: See ./references/debugging-strategies.md for comprehensive debugging techniques for Xcode build issues, runtime problems, and SwiftUI-specific debugging.
Guidance is successful when:
xcodebuild with -quiet flagFor complete reference materials, see:
./references/code-examples.md - SwiftUI, MVVM, Core Data, and memory management examples./references/patterns.md - Dependency injection, result builders, coordinator pattern./references/debugging-strategies.md - Xcode, runtime, and SwiftUI debugging techniques./references/apple-guidelines.md - Official Apple documentation and guidelinestesting
This skill should be used when the user asks to "start a service in tmux", "check tmux pane output", "manage background processes", or "run a server in a pane". Automatically activates when running in a TMUX session (detected by SessionStart hook). Not for one-off commands that do not need a persistent pane.
development
This skill should be used when the user asks to "write a README", "create API documentation", "draft release notes", "write a tutorial", "structure documentation", or "review docs for clarity". Automatically activates when working with .md files in docs/ directories, README files, or when discussing documentation structure, style guides, or content organization. Not for creative/marketing writing, academic papers, code comments/docstrings, or internal chat.
testing
This skill should be used when the user asks to "generate a PDF from markdown", "create a printable book", "convert documentation to PDF", or "export chapters as a PDF". Automatically activates when producing a PDF from a directory of ordered markdown chapters using pandoc and weasyprint. Not for single-file markdown-to-PDF conversion or non-documentation use cases.
documentation
This skill should be used when the user asks to "manage Obsidian vault", "create a daily note", "move notes without breaking links", "search vault content", or "organize Obsidian notes". Automatically activates when working with Obsidian vaults, markdown notes with [[wiki-links]], daily notes, templates, or tags. Not for general markdown editing outside Obsidian vaults.