Beyond the basicsAdvanced6h

Mobile system design.

Designing an app: offline, sync, and the API contract.

What is mobile system design?

Mobile system design is architecting a whole app: the data flow between device and backend, offline behavior and sync, the API contract, state, navigation, and how it all holds up on flaky networks and constrained devices. It is the big-picture counterpart to building individual screens.

Why it matters

Senior mobile interviews and real projects both ask you to design beyond a single feature — "design a chat app," "design offline notes." The mobile-specific concerns (offline, sync, push, battery, the client-server contract) make this its own discipline. It ties together everything in this track.

What to learn

  • The client-server contract and API shape
  • Local data model and caching strategy
  • Offline behavior and sync (from earlier stages)
  • State and navigation architecture
  • Push and real-time updates
  • Handling flaky networks and retries
  • Battery, storage, and performance budgets

Common pitfall

Designing a mobile app as if it were a web client with a reliable connection — assuming the network is always there and fast. Mobile design has to start from offline, sync, battery, and constrained devices. Ignoring those is the gap that separates a web developer's answer from a mobile engineer's.

Resources

Primary (free):

Practice

Take a prompt like "design an offline-capable notes app" and work through it: the API contract, local data model, sync and conflict strategy, navigation, and how it behaves offline and on a flaky network. Spend real time on the mobile-specific concerns. Done when offline and sync are central, not an afterthought.

Outcomes

  • Design the device-to-backend data flow and API contract.
  • Center offline behavior and sync in the design.
  • Architect state, navigation, and real-time updates.
  • Account for battery, storage, and flaky networks.
Back to Mobile roadmap