Making It Real - Production-Ready Swift
Series 1 built the Landmarks app from a tutorial into a deployed, tested full-stack Swift application. This series picks up exactly where it left off: the app works, the server runs, the tests pass. Now it's time to make it something you'd actually ship to users.
Every post includes a companion GitHub repo with the complete working code.
The Series
1. Shared Swift Packages: Unifying Your Client and Server Models
Coming March 16, 2026
Set up a development monorepo and extract shared API models into a Swift package that both the iOS app and Vapor backend consume. Replace duplicated types with a single source of truth.
2. User Authentication with Vapor and SwiftUI
Coming March 23, 2026
Add JWT-based authentication to the Vapor backend. Build login and signup screens in SwiftUI. Store tokens securely in Keychain using the closure-based service pattern.
3. Push Notifications with APNSwift
Coming March 30, 2026
Send push notifications from the Vapor backend using APNSwift. Register devices, store tokens server-side, and deep link users straight to the right screen using the Navigator from Series 1.
4. Offline Storage with SwiftData
Coming April 6, 2026
Use SwiftData for user-mutable local state like favorites and reservations while keeping the tiered cache for read-only server data. The best of both persistence strategies.
5. Background Sync and Conflict Resolution
Coming April 13, 2026
Handle the hard part of offline-first: what happens when the user makes changes offline and the server has different data? Build a sync engine with conflict detection.
6. Structured Logging and Health Checks in Vapor
Coming April 16, 2026
Add production observability to the Vapor backend. Structured logging with swift-log, a health endpoint for load balancers, and request timing middleware.
7. Performance Profiling with Instruments
Coming April 20, 2026
Profile the Landmarks app with Instruments. Find real bottlenecks in image loading, list scrolling, and network calls. Fix them with lazy loading and async prefetching.
8. Release Management with GitHub Actions and Stable Branches
Coming April 23, 2026
Build a clean release pipeline using stable branches, automated merge-back PRs, and GitHub prereleases. No Fastlane, no Ruby - just GitHub Actions and Xcode.
9. Feature Flags and Gradual Rollouts
Coming April 27, 2026
Build a provider-agnostic feature flag layer with property wrappers that auto-update your UI. Works with any backend - LaunchDarkly, Firebase, Grantiva, or your own.