Application · lesson 9 of 12 · Personalization And Preference

Recently used

Underlying principle: Preferences help a recurring task when the saved choice is visible, reversible, and scoped to the right person and device. Defaults should preserve a clear starting point.

Provide a bounded, personal recently used list that records meaningful use events, orders targets by most recent use, identifies each target clearly, separates use history from views, favorites, pins, recommendations, and searches, and supports removal, clearing, privacy, sync, and stale-target recovery.

Start with the decision

Does this fit your task?

Users repeatedly operate a broad set of tools, files, commands, apps, workspaces, or tasks.

Review the boundary: Compare the task with the alternatives in the decision section.

Review the decision →
Study the interaction

Follow the task before choosing the component

Preferences help a recurring task when the saved choice is visible, reversible, and scoped to the right person and device. Defaults should preserve a clear starting point.

01 / Recognize the need

What the person is doing

The product has many tools, files, commands, apps, workspaces, forms, starter flows, reports, or task surfaces users may operate repeatedly.

02 / Design the response

What the interface must communicate

Provide a bounded, personal recently used list that records meaningful use events, orders targets by most recent use, identifies each target clearly, separates use history from views, favorites, pins, recommendations, and searches, and supports removal, clearing, privacy, sync, and stale-target recovery.

Empty or hidden state before any qualifying use event exists.

03 / Judge the outcome

What to look for

What exact action proves the user used this target instead of merely seeing or viewing it?

A qualifying use event writes or updates a recent-use entry for the current user and declared scope.

Decision first

Choose this pattern when the problem matches

Use when

  • Users repeatedly operate a broad set of tools, files, commands, apps, workspaces, or tasks.
  • The product can identify a meaningful use event and store a stable target reference.
  • The surface can explain scope, privacy, removal, and stale-target behavior.

Avoid when

  • The target list is small enough that recent-use history adds noise.
  • Users need durable favorites, stable pins, named collections, saved views, or subscriptions instead of temporary history.
  • The team wants to promote recommended actions or popular tools rather than return the user's own recent use.

Problem it prevents

The product has many tools, files, commands, apps, workspaces, forms, starter flows, reports, or task surfaces users may operate repeatedly.

Test the behavior

Try strong and weak versions of the interaction

Open the working example, try its controls, and compare the behavior against the decision guidance.

In the lab you can
  • switch between strong UI, weak UI, strong UX, and weak UX;
  • trigger required, empty, loading, error, and recovery states;
  • inspect keyboard and accessibility expectations beside the demo.
Launch Recently used in the lab
Pattern anatomy

What a strong implementation has to make clear

User need

The product has many tools, files, commands, apps, workspaces, forms, starter flows, reports, or task surfaces users may operate repeatedly.

Pattern promise

Provide a bounded, personal recently used list that records meaningful use events, orders targets by most recent use, identifies each target clearly, separates use history from views, favorites, pins, recommendations, and searches, and supports removal, clearing, privacy, sync, and stale-target recovery.

Required state

Empty or hidden state before any qualifying use event exists.

Failure to inspect

The list records every view and hover, obscuring the tools or files the user actually used.

Access contract

Use a heading or labelled region that names the scope and target type, such as Recently used tools or Recently used files.

Quality bar

The difference between expert and weak execution

Strong implementation

Specific, visible, recoverable

  • A document editor Insert link flow shows Recently used cloud files with file type, folder, last-used time, and a Browse all files option.
  • A workspace launcher shows recently used tools with app name, workspace, last-used time, and a remove-from-recent-use action that leaves the tool installed.
  • A user on a managed shared laptop clears recently used files before handing off the device and sees that Favorites and pinned files remain unchanged.
  • A user selects a recently used cloud file from an insert-link flow instead of browsing the full document library again.
Weak implementation

Vague, hidden, hard to recover from

  • Removing a recently used workspace deletes the workspace instead of clearing the recency shortcut.
  • A reporting app treats viewing a dashboard as using it, so the recently used tools list fills with dashboards the user only inspected.
  • An AI assistant auto-adds recommended actions to Recently used before the user runs them, making the history look like a recommendation rail.
  • The list records every view and hover, obscuring the tools or files the user actually used.
UI guidance
  • Render a labelled Recently used area with target name, type, location or workspace, last-used time, use scope, availability, and a remove-from-recent-use control near each entry.
  • Make the qualifying use event clear through context and labels: recently used tools, commands, files, apps, workspaces, or tasks should not be visually mixed with items merely viewed, favorited, pinned, recommended, or searched.
UX guidance
  • Use recently used when users benefit from returning to the tools, files, commands, apps, workspaces, or tasks they actually operated, especially in products with many possible work surfaces.
  • Treat recent-use history as personal behavior data: cap it, expire it, let users remove or clear entries, expose device/account/workspace sync, and never turn it into a saved preference without deliberate user action.
Implementation contract

What the implementation must handle

States

  • Empty or hidden state before any qualifying use event exists.
  • Populated state with most-recent-first ordering and recognizable target identity.
  • Just-used state that moves the reused target to the top instead of duplicating it.
  • Remove-one and clear-all states that affect only recent-use history.

Interaction

  • A qualifying use event writes or updates a recent-use entry for the current user and declared scope.
  • Using the same target again updates recency and moves it to the top instead of creating duplicates.
  • Opening a recently used entry resumes or launches that exact target, command, app, file, workspace, or task if still available.
  • Removing an entry removes only the recent-use reference and leaves the target, favorite state, pin state, subscription state, and search history intact.

Accessibility

  • Use a heading or labelled region that names the scope and target type, such as Recently used tools or Recently used files.
  • Ensure remove and clear controls have names that mention recent-use history, such as Remove from recently used.
  • Announce use, remove, clear, stale-target, and unavailable-target changes through a stable status region.
  • Keep visual order, DOM order, and screen-reader order aligned after a reused item moves to the top.

Review

  • What exact action proves the user used this target instead of merely seeing or viewing it?
  • Can users tell whether the entry is a file, command, app, workspace, task, or tool before reopening it?
  • What scope controls where this recent-use history appears: device, account, workspace, browser, or managed profile?
  • How long should a recent-use shortcut remain useful before it expires?
Evidence trail

Source-backed claims behind this guidance

Android Developers Recents Screen

Google Android Developers - checked

Android documents recent accessed tasks users can resume or remove, with least-recently-used limits.

Full agent/debug reference

Problem Context

  • The product has many tools, files, commands, apps, workspaces, forms, starter flows, reports, or task surfaces users may operate repeatedly.
  • Use events are stronger than impressions or views because they indicate the user actually ran, selected, edited, inserted, launched, resumed, or completed work with the target.
  • Recent-use history can reveal sensitive work, internal projects, customer records, financial files, health contexts, or shared-device behavior.
  • Recently used targets can be renamed, moved, removed, restricted, archived, duplicated, superseded, synced across devices, or confused with favorites, pins, recommendations, and search history.

Selection Rules

  • Choose recently used when a meaningful use event should create a temporary return shortcut for the current user.
  • Use recently viewed when the list should record opened or inspected content, even if the user did not operate a tool or complete work with it.
  • Use favorites when users deliberately mark a preferred item for durable saved access.
  • Use pinned items when the item should remain in a stable prominent position or user-controlled order.
  • Use recommendations when the system proposes next actions based on model, rule, popularity, or context rather than the user's own last use events.
  • Use search history when the remembered object is a submitted query, not the target that was used after the query.
  • Record only meaningful use events such as launch, insert, run, edit, export, submit, resume, or select; avoid counting hover, preview, impression, suggestion display, or accidental focus.
  • Deduplicate by stable target ID, move reused targets to the top, cap visible count, and expire entries according to the task's memory window.
  • Expose account, device, workspace, and shared-device scope when recently used entries sync or could appear outside the immediate session.
  • Keep remove and clear actions explicitly scoped to recent-use history so users do not fear deleting the target or changing favorites, pins, or subscriptions.

Required States

  • Empty or hidden state before any qualifying use event exists.
  • Populated state with most-recent-first ordering and recognizable target identity.
  • Just-used state that moves the reused target to the top instead of duplicating it.
  • Remove-one and clear-all states that affect only recent-use history.
  • Device-scoped, account-synced, workspace-scoped, private-mode, and managed-device states when those scopes exist.
  • Unavailable, moved, renamed, archived, permission-lost, stale, and duplicate-name target states.
  • Mobile or narrow-screen state where target identity, scope, and remove controls remain reachable.

Interaction Contract

  • A qualifying use event writes or updates a recent-use entry for the current user and declared scope.
  • Using the same target again updates recency and moves it to the top instead of creating duplicates.
  • Opening a recently used entry resumes or launches that exact target, command, app, file, workspace, or task if still available.
  • Removing an entry removes only the recent-use reference and leaves the target, favorite state, pin state, subscription state, and search history intact.
  • Clearing recently used entries empties the visible recent-use history for the declared scope and does not clear recently viewed, favorites, pinned items, saved views, or saved searches.
  • Unavailable or permission-lost entries remain explainable with remove, request-access, browse-again, or replace paths.
  • The component is omitted or privacy-protected when recent-use history is disabled, private, signed out, or unsafe to show on shared screens.

Implementation Checklist

  • Define the exact use events that write history for each target type, such as launched tool, inserted file, submitted command, opened app task, edited document, or selected workspace.
  • Store stable target ID, target type, display name, location, scope, last-used time, use source, availability, and permissions rather than copied labels alone.
  • Deduplicate entries by target ID, update the last-used timestamp, enforce visible count and lifetime limits, and handle least-recently-used removal when limits are reached.
  • Label the list by scope, such as Recently used in this workspace, Recently used on this device, or Recently used in your account.
  • Provide remove-one, clear-all, pause or disable history, and browse-all alternatives when the list is empty, stale, or privacy-sensitive.
  • Refresh target metadata before rendering or navigating and mark moved, deleted, archived, renamed, or restricted targets clearly.
  • Test keyboard operation, mobile wrapping, long names, duplicate names, clear scope, sync across devices, shared-device exposure, failed recency writes, and stale-target repair.

Common Generated-UI Mistakes

  • Counting views, hovers, previews, suggestions, ads, or recommendations as use.
  • Mixing recently used with recently viewed, favorites, pinned items, search history, saved views, subscriptions, or recommendations in one ambiguous list.
  • Letting remove or clear delete the underlying file, app, command, workspace, or task.
  • Showing sensitive recent-use history on shared, public, signed-out, or screen-shared surfaces without controls.
  • Keeping an unlimited history until the list becomes an activity log rather than a return shortcut.
  • Leaving stale recently used entries as dead links.

Critique Questions

  • What exact action proves the user used this target instead of merely seeing or viewing it?
  • Can users tell whether the entry is a file, command, app, workspace, task, or tool before reopening it?
  • What scope controls where this recent-use history appears: device, account, workspace, browser, or managed profile?
  • Can users remove or clear the shortcut without deleting the target or changing pins and favorites?
  • How long should a recent-use shortcut remain useful before it expires?
  • What recovery appears when the recently used target has moved, changed permission, or become unavailable?
Accessibility
  • Use a heading or labelled region that names the scope and target type, such as Recently used tools or Recently used files.
  • Expose target name, type, location, status, and last-used time as text, not only icons or thumbnails.
  • Ensure remove and clear controls have names that mention recent-use history, such as Remove from recently used.
  • Announce use, remove, clear, stale-target, and unavailable-target changes through a stable status region.
  • Keep visual order, DOM order, and screen-reader order aligned after a reused item moves to the top.
  • Do not rely on color alone to distinguish unavailable, synced, private, or managed recent-use entries.
Keyboard Behavior
  • Tab reaches each recently used entry, primary launch action, remove control, scope controls, and clear-all action in a predictable order.
  • Enter or Space launches a focused entry when it is implemented as a button; links keep normal Enter behavior.
  • Remove-one keeps focus on the next entry or the empty-state message and announces that only history was removed.
  • Clear-all asks for confirmation when the scope is broad or synced, then returns focus to the empty state.
  • If a used entry moves to the top after activation, focus follows the resumed target or returns to the updated entry when navigation is not performed.
  • Horizontal rails provide keyboard-operable scroll controls and do not trap focus.
Variants
  • Recently used files
  • Recently used tools
  • Recently used commands
  • Recently used apps
  • Recently used workspaces
  • Recent tasks
  • Recent starters
  • Recent exports
  • Account-synced recent use
  • Device-local recent use

Verification

Source trail checked:

Saved items