What mobile needs from a backend.
WHAT DIFFERS FROM WEB CLIENTS
Connections are slower and intermittent Data is metered Devices are constrained Old application versions persist for months
WHAT THAT LAST POINT REQUIRES
Backward compatibility, and versioning.
WHY
You cannot force everyone to update, so the old version must keep working.
WHAT TO DESIGN FOR
Fewer requests, each returning what a screen needs Small payloads Pagination on every collection Compression
WHY FEWER REQUESTS
Each has latency cost, which dominates on mobile networks.
WHAT TO AVOID
Endpoints returning far more than the client uses Requiring several requests to render one screen Unbounded collections
WHAT TO INCLUDE IN RESPONSES
Consistent structure, including for errors Clear error codes the client can act on
WHAT TO SUPPORT
Conditional requests, so unchanged data is not retransmitted.
WHAT TO PROVIDE
A way to tell clients the minimum supported version.
WHY
So an obsolete application can prompt rather than fail confusingly.