Building a Full-Stack Swift App - From Navigation to Deployment

This series takes Apple's Landmarks tutorial app and turns it into a production-ready, full-stack Swift application. Each post builds on the last, introducing one architectural pattern at a time - from client-side navigation all the way through server deployment and automated testing.

Every post includes a companion GitHub repo with the complete working code.

The Series

1. SwiftUI Navigation the Easy Way

January 10, 2026

A type-safe, scalable approach to SwiftUI navigation using enums and centralized destinations.

View Code

2. Domain Models vs API Models in Swift

January 17, 2026

Why separating your network layer from your business logic makes everything easier.

View Code

3. Dependency Injection in SwiftUI Without the Ceremony

January 24, 2026

Closure-based services, observable stores, and why you don't need protocols or view models.

View Code

4. Tiered Caching in Swift

January 31, 2026

A two-layer cache with memory and disk storage, LRU eviction, and flexible fetch policies.

View Code

5. Setting Up a Backend Server for Our Landmarks App

February 7, 2026

Build a Vapor backend with Fluent models, response types, and RESTful routes.

View Code

6. Using Everything We've Learned to Build a Fully Featured App

February 14, 2026

Wire together Vapor, networking, API models, domain models, caching, and SwiftUI into a complete working app.

View Code

7. Let's Deploy It to AWS and Set Up a CI/CD Pipeline

February 21, 2026

Dockerize the Vapor backend, deploy to AWS with ECS Fargate, and automate with GitHub Actions.

View Code

8. Testing Against a Real Server in Vapor Tests

February 24, 2026

Write integration tests that boot a real server, make HTTP requests, and verify endpoints end-to-end.

View Code

9. Testing the Landmarks App with Dependency Injection

February 28, 2026

The closure-based DI pattern makes the iOS app trivially testable - without hitting any server.

View Code

10. Visual Regression Testing with Grantiva and Stateful Mocks

March 7, 2026

Use Grantiva's YAML-based visual regression testing to test real user flows and catch visual changes automatically — without a running server.