People want an app that acts on their commands and communicates how long processing will take. If your app presents blank or static content and doesn’t provide feedback, people might think your app is frozen.
Provide instant acknowledgment of user interactions. Users expect to receive feedback every time they interact with your app. For example, throughout the system, buttons respond visually when clicked and the pointer changes as it moves over different controls and regions onscreen. The more quickly your app provides feedback for the user’s interactions, the more responsive it appears.
Help people gauge how long a process will take to complete. Users don’t always need to know precisely how long a task will take, but it’s important to give them an estimate. At minimum, show an activity spinner that denotes something is happening. Ideally, display an explicit progress indicator and supplementary descriptive text. For example, Finder combines a progress bar with explanatory text to show how long a copy operation will take.
Show content as soon as possible. If you make people wait for content to load before seeing results, they may interpret the lack of content as sluggishness. Instead, show placeholder text, graphics, or animations where content isn't available yet, and replace these elements as the content loads. Whenever possible, preload upcoming content in the background, such as while an animation is playing or user interaction is occurring.