The blog
iOS and macOS development told line by line. Filter by topic or explore the full series.
59 articles
macOSFastlane New
macOS CI/CD with Fastlane (part 4): auto-versioning and QA vs Release lanes
Part four of the series. The internal mechanics of the lanes: how Fastlane handles MARKETING_VERSION and CURRENT_PROJECT_VERSION, why there are two lanes (qa and release), what separates them, and how skip_publish mode lets you rehearse the pipeline without publishing for real.
macOS CI/CD with Fastlane (part 3): notarization in depth
Sep 11, 2026
macOS CI/CD with Fastlane (part 2): setup, certificates and credentials
Sep 10, 2026
Apple 'Surprise and Shine' Event: iPhone Duo, iPhone 18 Pro and what it means for devs
Sep 09, 2026
macOS CI/CD with Fastlane (part 1): distribution outside the App Store
Sep 09, 2026
Pokédex in TCA (part 6): testing and a technical contrast with MVVM
Sep 01, 2026
Pokédex in TCA (part 5): debounced search and type filters
Aug 31, 2026
Pokédex in TCA (part 4): favorites with @Shared
Aug 30, 2026
Pokédex in TCA (part 3): the detail and navigation as state
Aug 29, 2026
Pokédex in TCA (part 2): remote state, pagination and visible errors
Aug 28, 2026
Pokédex in TCA (part 1): project setup and feature architecture
Aug 27, 2026
iOS security (part 5): AI-assisted coding without leaking data
Aug 11, 2026
iOS security (part 4): logs and sensitive data leaks
Aug 10, 2026
iOS security (part 3): secrets and API keys in the binary
Aug 09, 2026
iOS security (part 2): encrypting files at rest
Aug 08, 2026
iOS security (part 1): where to store tokens and secrets
Aug 07, 2026
TCA from scratch (part 4): testing in depth and an honest comparison
Jul 25, 2026
TCA from scratch (part 3): shared state and persistence
Jul 24, 2026
TCA from scratch (part 2): composition and state-driven navigation
Jul 23, 2026
TCA from scratch (part 1): building a search feature with the 2026 API
Jul 22, 2026
Concurrency that no longer bites: Swift's new defaults (6.2 → 6.4)
Jul 14, 2026
Modern concurrency in Swift: async/await, Task, actors and Sendable
Jul 13, 2026
Structured concurrency in practice: async let, TaskGroup, cancellation and actors
Jul 13, 2026
Skyllector is on the App Store
Jun 24, 2026
WWDC 2026 for devs (part 4): visionOS, Siri's shift, and the rest of the ecosystem
Jun 21, 2026
Narcisse 1.2.0 is out
Jun 17, 2026
WWDC 2026 for devs (part 3): Xcode Agent Skills and the official SwiftUI APIs
Jun 14, 2026
WWDC 2026 for devs (part 2): AI in apps, agents, and more SwiftUI
Jun 14, 2026
WWDC 2026 for developers: what we know so far
Jun 09, 2026
Building a Pokédex on iOS — Part 10: CI/CD with GitHub Actions
May 30, 2026
Building a Pokédex on iOS — Part 9: Unit testing with Swift Testing
May 29, 2026
Building a Pokédex on iOS — Part 8: ViewModel with @Observable
May 28, 2026
Building a Pokédex on iOS — Part 7: Image cache
May 27, 2026
Building a Pokédex on iOS — Part 6: Offline persistence with SwiftData
May 26, 2026
Building a Pokédex on iOS — Part 5: Domain models and Use Cases
May 25, 2026
Building a Pokédex on iOS — Part 4: Repository Pattern
May 24, 2026
Building a Pokédex on iOS — Part 3: DTOs and the API contract
May 23, 2026
Building a Pokédex on iOS — Part 2: Network layer
May 22, 2026
Building a Pokédex on iOS — Part 1: Project structure
May 21, 2026
Conditional compilation in Swift
May 15, 2026
Generics in Swift
May 15, 2026
@propertyWrapper in Swift: beyond UserDefaults
May 15, 2026
Feature flags with UserDefaults on macOS
May 14, 2026
Narcisse is now live
May 04, 2026
AlgoViewer is now available
Feb 24, 2026
FigureDex: Your Amiibo Collection, Finally Organized
Jan 02, 2026
Basic operators
Jan 01, 2026
struct — value type
Jan 01, 2026
if / else if / else
Jan 01, 2026
Basic function declaration
Jan 01, 2026
What is an Optional?
Jan 01, 2026
What is a Swift Playground?
Jan 01, 2026
What are variables and constants?
Jan 01, 2026
How to expose an HTML interface in a macOS app
Jul 04, 2025
Modeling API responses with enums in Swift: an elegant solution for unpredictable APIs
May 13, 2025
Announcing the new version of Game Progress
Sep 02, 2024
Starting a project in Xcode
Jun 22, 2021
What's new at WWDC 2021 | Part 1
Jun 11, 2021
What's new at WWDC 2021 | Part 2
Jun 11, 2021
No articles with that filter yet.