What you're going to build
Welcome to PawWalk Academy β Android edition
By the end of this course you will have built PawWalk β a real Android 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/android, and every lesson here teaches you to rebuild a real piece of it, file by file.
You need zero Kotlin, Android, or Jetpack Compose knowledge to start. We begin with "what is a variable" and end with an AI assistant that can draft a booking for you.
Already done the iOS track? Great β the concepts rhyme on purpose (
letβval,@Stateβremember), so a lot of this will feel like a second pass. Never touched Swift either? Also fine β this course assumes nothing.
The app, in one screenshot tour
- Auth β sign up / log in as a dog owner or a walker. Sessions survive app restarts thanks to encrypted on-device storage.
- Home β a designed dashboard with your walk stats and recent walks.
- 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 screen showing the walk happening in real time, fed by GPS.
- AI assistant β chat with an assistant that can draft a booking for you.
How the pieces talk
The Android 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 Android side. It's the exact same backend the iOS app talks to.
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 Kotlin code you write will mirror it precisely.