HomeViewModel: Four Requests at Once

One screen, four endpoints

The home screen is hungry: the next-walk card needs your bookings, the walker's name on that card needs the walkers, the big dog header needs your pets, and the stat tiles need the server-computed stats. Four independent GET requests. bookings() and walkers() you built in Module 07; pets() and ownerStats() are two more APIClient helpers built exactly the same one-line way.

Await them one after another and the waits add up β€” four 200 ms requests cost 800 ms of spinner. They don't depend on each other, so they should run at the same time.

The tool is async let: writing async let bookingsCall = APIClient.shared.bookings() starts the request immediately and keeps going β€” no waiting. Fire off all four, then await each result where it's needed. Total time: the slowest request, not the sum.