What you're going to build
Welcome to PawWalk Academy
By the end of this course you will have built PawWalk β a real iPhone app where dog owners find walkers, book and pay for walks, and watch their dog's walk live on a map with GPS. It's not a toy: the finished app already lives in this repository at apps/ios, and every lesson here teaches you to rebuild a real piece of it, file by file.
You need zero Swift, SwiftUI, or iOS knowledge to start. We begin with "what is a variable" and end with WebSockets streaming GPS fixes onto a live map.
The app, in one screenshot tour
- Auth β sign up / log in as a dog owner or a walker. Sessions survive app restarts thanks to the iOS Keychain.
- Home β a designed dashboard with your walk stats, streaks, and recent walks with distance sparklines.
- Walkers β browse walkers, their ratings and prices, and book one.
- Bookings β create a booking, watch its status move from pending β confirmed β in progress β completed.
- Live tracking β a map showing the walk happening in real time, fed by GPS over a WebSocket.
- AI assistant β chat with an assistant that can draft a booking for you.
How the pieces talk
The iPhone app is a client. It talks HTTP + JSON to a Python backend (FastAPI) that owns the database. The backend is already built and already running in this repo β your job in this course is the iOS side.
You'll see the phrase API contract a lot. It's the agreement about exactly what JSON the backend sends and expects β written down in
docs/API-CONTRACT.md. The Swift code you write will mirror it precisely.