01
The Networking Layer
Session configuration and task types, type-safe JSON conversion, classifying network errors and retrying, token management, memory and disk caching, and transfers while the app is in the background.
- 01 The Network Client Session configuration and the task types; measuring, in four categories, whether the result of the six operations behind the network layer changes if they are repeated or reordered.
- 02 JSON Encoding and Decoding Turning a network response into a typed record and writing the record to a store; measuring how the order in which a two-version record is written changes the result.
- 03 Errors and Retries Classifying network errors, and measuring whether an order retried after a timeout creates a second record on the server.
- 04 Authentication Storing and refreshing bearer tokens; measuring whether storing two refresh responses in a different order brings back the old token.
- 05 Image and Data Caching The eviction rule of memory and disk caches; measuring why the same pair of operations comes out robust in an empty cache and order-sensitive in a full one.
- 06 Background Transfers Downloads the system keeps running while the app is in the background; measuring why re-queuing on relaunch without checking the list downloads the same file twice.