11-1 Responsiveness

SFR1811·2022년 4월 6일
0

CS349-User Interface

목록 보기
8/8

We want softwares to feel responsive.
This is different from actual runtime or software performance.
It has more to do with human perception of time.

So what affect responsiveness?

  • User expectation
    • how quickly a system should react to complete some task
    • this includes expectations for technology
      (web app vs native app)
  • Application and interface design
    • interface keeps up with user actions
    • the interface informs the user about application status
    • the interface doesn’t make users wait unexpectedly

You can have slow performance but responsive program.

  • Allow people to do something else while time consuming task is running
  • give feedback on how things are going with regards to the task
  • give feedback to confirm user action - letting them know that their input has been processed.
  • prepare for user's most common request
  • perform low-priority system tasks in the background
    • this is about the same as allowing ppl to do something else.

Perceived Time

Design Implication

Time to prepare for conscious cognition task

Task indicator

If you are occupying UI thread, or cannot give feedback immeniatly, let use know with indicator.

You may want to give something more descriptive, i.e. a progress bar, if the task you are doing will take a long time.

Busy indicator for 5 min task will give an impression that something is very wrong.

Skeleton Screen

load minimum skeleton of layouts that user might eventually see.

loading seems faster because of immediate response the user gets from skeleton screen.

Progress Indicator Design Best Practices

  • show work remaining, not completed
  • show total progress when multiple steps
  • display finished state very briefly at the end
  • show smooth progress not erratic bursts
  • use human percision
    i.e. not "57.221 sec remaining" but "about a minute"

Responsiveness technique

  • Changing Perception of Progress Bars
  • progressive loading
  • Predicting Next Operation
  • Graceful Degradation of Feedback
  • Chunking Processing

Progressive loading

Graceful Degradation of Feedback

Chunking Processing

Avoid doing frequent processing during user interaction
i.e. sending and changing display via API request for every keystrokes on user search bar input will slow ui significantly. so do feedback every once in a while.


Subtasks

  • Task object keeps track of current task progress
  • Subtasks periodically called on UI thread
  • JavaFX: Platform.runLater()
  • Every time object told to “run” for a bit, it checks current progress, executes subtask, updates progress, cancels if asked, …

Advantages

  • feels more responsive because UI is interactable while doing tasks

Disadvantages

  • the task will be inturrupted frequently, and thus will be slowed down.
  • might be difficult to predict the length of time for subtasks
profile
3B CS

0개의 댓글