Capstone 1 — SkyWatch

Tagline: A delightful, location-aware weather app with widgets that update in the background, severe-weather alerts, and a saved-location map you can scrub through.

Tech stack: WeatherKit · MapKit · CloudKit · WidgetKit · App Intents · SwiftUI · Fastlane CI

Time budget: ~2 weeks (one full week if you skip widgets and complications)

What this capstone proves:

  • You can integrate multiple first-party SDKs end-to-end without each one becoming a half-finished demo
  • You can build widgets people actually want (not the toy widgets every tutorial ships)
  • You understand the WeatherKit usage-based pricing and how to design a UI that respects it
  • You can sync CloudKit private database correctly with conflict handling
  • You can ship a Fastlane TestFlight pipeline

The 30-second pitch

“SkyWatch is a weather app I built end-to-end on Apple’s stack — WeatherKit for forecasts, MapKit for a scrubbable radar-style map, CloudKit private DB for saved locations that sync across devices, and a Lock Screen widget that updates every 15 minutes with the next hour’s precipitation. The interesting bit was designing the WeatherKit call budget — Apple gives you 500K calls a month free, and I built a caching layer with TTL keyed by (location, forecast type) that brought us to under 5K calls/month even with 100 daily users. Source is on GitHub, TestFlight build is live.”

Why this capstone

WeatherKit + CloudKit + WidgetKit hit three different parts of the iOS stack in one project. You get to talk about:

  • API budget design (caching, TTL, deduplication) — a real engineering conversation, not a CRUD app conversation
  • Widget timelines and refresh policy — separates juniors from mids
  • CloudKit conflict resolution — separates mids from seniors
  • MapKit performance with many annotations and overlays
  • App Intents for Siri integration and Shortcuts

Files

  1. requirements.md — full feature list, user stories, acceptance criteria
  2. architecture.md — module layout, data flow, ADRs
  3. implementation-guide.md — step-by-step build walkthrough
  4. hardening-checklist.md — production + security review
  5. interview-talking-points.md — the conversation this capstone earns you

What “done” looks like

  • Live on TestFlight with at least 5 external testers
  • GitHub repo public with a README that shows screenshots and the architecture diagram
  • All seven sections in hardening-checklist.md ticked off
  • You can deliver the 30-second pitch above without looking at notes
  • You can answer all 12 interview questions in interview-talking-points.md

Stretch goals

  • Apple Watch complication with the next hour’s precipitation
  • Live Activity for active weather alerts (severe thunderstorm, tornado warning)
  • App Intent for Siri: “Hey Siri, will it rain in Portland tomorrow?”
  • Localize for Spanish, Japanese, German — and validate the MeasurementFormatter paths

Next: Requirements