Recent Posts
Why Swift Migration Tooling Matters
The 5 biggest mistakes iOS Developers make with async/await
Derived Data: 5 Things iOS Developers Do Wrong
The Essential Swift Concurrency Course for a Seamless Swift 6 Migration.
Learn all about Swift Concurrency in my flagship course offering 13 modules, 78 lessons, videos, code examples, and an official certificate of completion.
Updated for Swift 6.2 and now available with a limited-time launch offer.
Swift Keywords
Do you know how to use each keyword in Swift?
Click on the keyword to learn more and explore code examples.
Career Advice – Grow your career
Looking to grow your career in iOS development? With years of experience leading teams at WeTransfer and building SwiftLee into a go-to resource for over 140,000 developers monthly, I offer insights on everything from launching successful side projects to scaling app users. Whether you’re refining your Swift skills, building an online presence, or creating passive income with courses, I’m here to help you navigate your journey.
Ready to make your side project a success?
Tired of the 9-to-5 grind and endless meetings? Imagine turning your side project into a six-figure income and going fully independent—just like I did. Learn my proven steps to transform your passion into profit.
The Going Indie Podcast
Discover stories and strategies from creators who’ve turned side projects into thriving businesses. Ready to take the leap?
Learn more about Swift
Swift Computed Property: Code Examples
Property Wrappers in Swift explained with code examples
Async await in Swift explained with code examples

FREE 5-Day Email Course: The Swift Concurrency Playbook
A FREE 5-day email course revealing the 5 biggest mistakes iOS developers make with with async/await that lead to App Store rejections And migration projects taking months instead of days (even if you've been writing Swift for years)
Learn SwiftUI
SwiftUI Toggle: A Complete Guide
@ViewBuilder usage explained with code examples
Universal Links implementation on iOS
Build Apps Faster using RocketSim
Recommend by Apple as an “Essential Tool for Developers”, RocketSim helps thousands of engineers to save hours per week. Discover these articles and learn how you can leverage RocketSim to improve your workflow:
App Actions
- Inspect network traffic using the Xcode Simulator
- Universal Links implementation on iOS
- Deeplink URL handling in SwiftUI
- Location Simulation in Xcode’s Simulator
- Optimizing your app for Network Reachability
- Testing push notifications on the iOS simulator
App Actions Perform Menu
- Localization testing in Xcode
- User Defaults reading and writing in Swift
- Xcode Simulator Directories Exploration
RocketSim Tools
Combine all the things
Combine and Swift Concurrency: A threading risk
@Published risks and usage explained with code examples
RunLoop.main vs DispatchQueue.main: The differences explained
Dive into Core Data
How to observe NSManagedObject changes in Core Data using Combine
Data validation on insertion, update, and deletion in Core Data
Derived Attributes to improve Core Data Fetch Performance
Be an expert on Xcode
Derived Data: 5 Things iOS Developers Do Wrong
Sparkle: Distribution apps in- and out of the Mac App Store
RocketSim 13.0: Builds Apps Faster
Get better at debugging
Introducing Diagnostics: Improved Debugging and User Support
Network Link Conditioner: Simulating Slow Networking
Memory consumption when loading UIImage from disk
Improve your workflow
Testing push notifications on the iOS simulator
Designing Apps: 5 Methods to improve your workflow
Test-Driven Development (TDD) for bug fixes in Swift
Optimize yourself and improve
App Store Optimization: Real-world Best Practices
Introducing Diagnostics: Improved Debugging and User Support
Billing Grace Period Explained: How It Works and Why It Matters
- Why Swift Migration Tooling Matters
- Async await in Swift explained with code examples
- The 5 biggest mistakes iOS Developers make with async/await
- MainActor usage in Swift explained to dispatch to the main thread
- Sendable and @Sendable closures explained with code examples