Performance Expert
SKILL.md
Performance Expert
Performance optimization for Leavn iOS app.
Main Thread Violations
Find heavy work in View body:
// BAD: In View body
let image = processImage(data) // Blocks UI
// GOOD: In ViewModel, async
Task { processedImage = await processImage(data) }
SwiftUI Rendering
- Use
@Observable(not @Published) for granular updates EquatableViewfor expensive viewsLazyVStack/LazyHStackfor listsdrawingGroup()for complex graphics
Memory Issues
- Capture
[weak self]in closures - Break retain cycles in delegates
- Use
Instruments > Leaksto find issues
Battery/Thermal
- Batch network requests
- Reduce location update frequency
- Use
beginBackgroundTasksparingly - Profile with Instruments > Energy Log
Profiling Commands
# Time Profile
xcrun xctrace record --template "Time Profiler" --launch -- /path/to/app
# Memory
xcrun xctrace record --template "Leaks" --launch -- /path/to/app
Use when: Slow UI, battery drain, memory issues, thermal throttling