Daily iOS
iOS system design

Transaction history screen

Design the client for a money transfer app's transaction history screen. Requirements: infinite-scroll pagination, recent history available offline, new transactions appearing at the top in real time, and no flicker or duplicates on low-end devices with a flaky signal.

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

The local DB (SQLite/SwiftData) is the single source of truth and the screen observes only the DB. Server pages (cursor based) and real-time events (push/socket) both upsert into the DB, deduplicated by id and ordered by server timestamp. The UI updates partially with a diffable snapshot, and for low-end devices and bad signal you use small pages, timeouts, retries, and a "last synced" indicator.

Share a question