Blog
30 posts about iOS, macOS, and Swift
2026
May 30 Building a Pokédex on iOS — Part 10: CI/CD with GitHub Actions → May 29 Building a Pokédex on iOS — Part 9: Unit testing with Swift Testing → May 28 Building a Pokédex on iOS — Part 8: ViewModel with @Observable → May 27 Building a Pokédex on iOS — Part 7: Image cache → May 26 Building a Pokédex on iOS — Part 6: Offline persistence with SwiftData → May 25 Building a Pokédex on iOS — Part 5: Domain models and Use Cases → May 24 Building a Pokédex on iOS — Part 4: Repository Pattern → May 23 Building a Pokédex on iOS — Part 3: DTOs and the API contract → May 22 Building a Pokédex on iOS — Part 2: Network layer → May 21 Building a Pokédex on iOS — Part 1: Project structure → May 15 Conditional compilation in Swift → May 15 Generics in Swift → May 15 @propertyWrapper in Swift: beyond UserDefaults → May 14 Feature flags with UserDefaults on macOS → May 4 Narcisse is now live → Feb 24 AlgoViewer is now available → Jan 2 FigureDex: Your Amiibo Collection, Finally Organized → Jan 1 Basic operators → Jan 1 struct — value type → Jan 1 if / else if / else → Jan 1 Basic function declaration → Jan 1 What is an Optional? → Jan 1 What is a Swift Playground? → Jan 1 What are variables and constants? →
2025