Daily iOS
iOS system design

Flight booking flow

Assume the backend already exists and design a flight booking iOS app. The flow runs search results → flight selection → seat and passenger entry → payment → confirmation. Focus on how you manage state across those screens.

How would an interviewer hear this answer? You'll see whether they'd move on, dig in, or say no, and which sentences would trip you up. Your score doesn't change.
See the short answer

Model the booking as an explicit state machine (searching→selected→held→paying→confirmed/failed) owned by one BookingSession. A hold carries a server expiry time, with a UI countdown and a re-hold on expiry. Search results can be cached; booking steps always treat the server as the truth.

Share a question