Guides and Sample Code

Developer

On-Demand Resources Guide

Patterns of On-Demand Resource Use

Most apps access on-demand resources in one of three patterns. Those patterns guide the design approach, shown in column 3 of Table 12-1.

Table 12-1Patterns of on-demand resource use

Name

Example

Access pattern

Design approach

Random access

Browsing app

No pattern

  • Many tags

  • Small tag sizes

  • Progressive loading

Limited Prediction

Open world game

Access subset based on current app state

  • Many tags

  • Small tag sizes

  • Progressive loading

  • Loading subsets based on app state

  • Quickly ending access to unused tags

Linear Progression

Leveled game

Access order highly predictable

  • Download in advance

  • Ending access to tags when done

  • Many tags. Enables downloading only what is needed or might be needed.

  • Small tag sizes. Provides several benefits:

    • Faster downloads

    • Optimal app performance

    • Best-use memory limits for on-demand resources

    • Minimized penalty for downloading tags that are not needed

  • Progressive loading. Enables a smooth experience by downloading the resources for the next phase of the app as soon as the user starts the current phase.

  • Loading subsets based on the app state. Downloads resources for the next likely app states.

    For example, in an open world game the current game location constrains the next set of location resources.

  • Quickly ending access to unused tags. Frees up memory for more on-demand resources. This is particularly important for apps that download subsets of resources based current app state.

  • Downloading in advance. Enables a smooth progression through the app.

    Linear progression apps tend to have larger amounts of resources associated with each stage. Downloading in advance is important for uninterrupted game play and maximizing performance.

  • Ending access to tags when done. Enables more free space for the next stage in a linear progression app.