Haptic Feedback UI Guidelines for iOS (Use It Well)
Good haptics are felt, not noticed; bad ones are the first thing a user turns off.
TL;DR
Haptic feedback carries meaning: match the system pattern (success, error, warning, selection) to the event, use it sparingly, and never make it the only signal since users can disable it. Build the screen from a free VP0 design, trigger the right haptic per event with Core Haptics or Expo Haptics, and test on a real device.
Haptic feedback, the small taps and vibrations an iPhone produces, makes an app feel responsive and physical when used well, and cheap and annoying when overused. The short answer is, use the system haptic patterns for their intended meaning (a success tap, a selection tick, a warning buzz), keep them sparing, and never use haptics as decoration. Design the moments where feedback helps in a free VP0 screen, then trigger the right system haptic at each. Good haptics are felt, not noticed; bad ones are the first thing a user turns off.
Why haptics are a design decision, not an afterthought
Haptics carry meaning. Apple’s playing haptics guidance ties specific feedback to specific events, success, warning, error, selection, so a haptic should confirm something happened, not just fire. Used well, haptics raise the perceived quality of an app, which feeds the same first-impression dynamics that shape retention (typically around 25% on day one). Used badly, vibrating on every tap, they read as noisy and drain trust (and battery). The discipline is restraint: reserve haptics for moments that genuinely benefit from physical confirmation.
How to add haptics the right way
VP0 is a free iOS design library for AI builders. Build the screen from a VP0 design, then map haptics to meaningful events: a success notification haptic when a task completes, a selection haptic as a picker value changes, a warning for a destructive confirmation. On iOS, use the system feedback generators (and Core Haptics for custom patterns); in React Native, a library like Expo Haptics wraps them. Match the haptic to the event’s weight, light for selection, heavier for completion, and test on a real device, since the simulator does not vibrate. For the broader quality bar, see how to make my app look better.
Haptic feedback, by moment
Here is which feedback fits which event.
| Event | Haptic to use |
|---|---|
| Task succeeded | Success notification |
| Action failed | Error notification |
| Risky confirm | Warning notification |
| Value changed | Selection (light tick) |
| Button press | Light impact, sparingly |
A worked example
Say a user completes a checkout. Build the success screen from a VP0 design, and the instant the order confirms, fire a success notification haptic alongside the visual confirmation, so the completion is felt as well as seen. When they scroll a quantity picker, use a light selection tick per value. For a destructive “delete account” confirm, a warning haptic adds weight to the decision. Do not add a haptic to ordinary scrolling or every tap. A useful rule of thumb: if you cannot explain in one sentence what a given haptic confirms, it should not fire. And tune intensity to context, a subtle tick that feels right in a quiet settings screen can feel intrusive during fast, repeated actions. To pair feedback with the confirming screen, see in-app purchase success modal UI free; for the profile screen patterns, user profile screen UI design Figma.
Common mistakes
The most common mistake is firing haptics on everything, which makes the phone feel buzzy and gets the feature disabled. The second is using the wrong pattern, a success buzz for an error, which confuses the meaning. The third is ignoring that users can disable system haptics, so never make haptics the only signal. The fourth is heavy custom patterns that drain battery. The fifth is testing only in the simulator, where you feel nothing and ship untested feedback.
Key takeaways
- Haptics carry meaning; match the system pattern (success, warning, selection) to the event.
- Use them sparingly, good haptics raise perceived quality, overuse gets the feature turned off.
- Never make a haptic the only signal, because users can disable system haptics.
- Build the screen from a free VP0 design, trigger the right haptic per event, and test on a real device.
Frequently asked questions
How should I use haptic feedback in an iOS app? Reserve haptics for meaningful events and match the system pattern: success, error, and warning notifications for outcomes, and a light selection tick for value changes. Keep them sparing and test on a real device.
Can haptics make my app feel better? Yes, when used well they raise perceived quality and responsiveness. The key is restraint and correct meaning; overusing them has the opposite effect and gets the feature disabled.
Should I rely on haptics to communicate something important? No. Users can turn system haptics off, so always pair a haptic with a visual or audible signal rather than making it the only feedback.
Why does my haptic not work in testing? The iOS Simulator does not produce haptics. Always test haptic feedback on a physical device to confirm the right pattern fires at the right moment.
Frequently asked questions
How should I use haptic feedback in an iOS app?
Reserve haptics for meaningful events and match the system pattern: success, error, and warning notifications for outcomes, and a light selection tick for value changes. Keep them sparing and test on a real device.
Can haptics make my app feel better?
Yes, when used well they raise perceived quality and responsiveness. The key is restraint and correct meaning; overusing them has the opposite effect and gets the feature disabled.
Should I rely on haptics to communicate something important?
No. Users can turn system haptics off, so always pair a haptic with a visual or audible signal rather than making it the only feedback.
Why does my haptic not work in testing?
The iOS Simulator does not produce haptics. Always test haptic feedback on a physical device to confirm the right pattern fires at the right moment.
Part of the Native Apple & SwiftUI: The iOS Ecosystem hub. Browse all VP0 topics →
Keep reading
Free User Flow Examples (and How to Build From Them)
A user flow is the path between screens. Study proven flow examples, then build your own from free VP0 screens, wiring them into the sequence you mapped.
How to Design an iOS Settings Screen
A settings screen is pure convention, which makes it easy to get subtly wrong. Here is how to structure one with grouped lists, sections, and real accessibility.
iOS Onboarding Screen Design That Actually Converts
Most apps lose users in the first session. Here is how to design an iOS onboarding screen that converts: start from a free VP0 design, get to a first win fast.
Designing iOS Empty States That Feel Intentional
Every app has empty states and most ignore them, so a blank first screen reads as broken. Here is how to design iOS empty states that teach and convert instead.
Airbnb-Style Bottom Sheet in React Native: Map Meets List
Airbnb's map-plus-draggable-sheet is a gold-standard pattern. Build a smooth bottom sheet over a map from a free VP0 design in React Native, with the right detents.
Barcode Scanner Viewfinder UI for Mobile Apps
A barcode scanner viewfinder needs a dark overlay, a clear cutout, and instant feedback. Build one from a free VP0 design and power it with Apple VisionKit.