SwiftLee
Using an MCP to perform product optimizations
VoiceOver Navigator & 120 FPS Recordings for Xcode’s Simulator
Swift Testing Agent Skill: Write high quality tests with AI
Core Data Agent Skill: Now available open-source
SwiftUI Agent Skill: Build better views with AI
AI App Development: What I Learned in One Month
11 Things I learned after using AI Agents full-time
Agent Skills explained: Replacing AGENTS.md with reusable AI knowledge
Icon Composer: Transforming an AI-generated icon
SwiftLee in 2025: A full year as an indie developer
From App Idea to 10K MRR – YouTube Series
9 months of a Swift Concurrency Course
Battery life on iOS and the myth of killing apps
The 7 changes I do for every new Xcode project
Black Friday: SwiftLee Courses & RocketSim
Approachable Concurrency in Swift 6.2: A Clear Guide
MainActorMessage & AsyncMessage: Concurrency-safe notifications
Simulator Camera: Test your app without a physical device
Build performance analysis for speeding up Xcode builds
SwiftUI Architecture: Structure Views for Reusability and Clarity
Why Swift Migration Tooling Matters
The 5 biggest mistakes iOS Developers make with async/await
Derived Data: 5 Things iOS Developers Do Wrong
App Store Optimization: Real-world Best Practices
Introducing Diagnostics: Improved Debugging and User Support
SwiftUI Toggle: A Complete Guide
@ViewBuilder usage explained with code examples
Swift Computed Property: Code Examples
Property Wrappers in Swift explained with code examples
Async await in Swift explained with code examples
Global actor in Swift Concurrency explained with code examples
Combine and Swift Concurrency: A threading risk