Native feedback
Why use native haptics
- Consistency – Users expect certain tactile responses across apps; using native APIs keeps the experience familiar.
- Trust & Feedback – Reinforces confidence by confirming interactions (especially in high-stakes apps like banking).
- Accessibility – Provides an alternative feedback channel for users with hearing or visual impairments.
- Efficiency – Native haptics are optimized for each platform’s hardware, ensuring smooth and reliable feedback.
Haptic feedback architecture
UDS defines a unified approach to haptic feedback across all components to ensure consistency, accessibility, and alignment with the native platform experience. The implementation operates on two complementary levels:
Native system components
For all standard Android and iOS UI components (such as Switch, DatePicker, TimePicker, Slider, or other system controls), we rely entirely on the platform’s native haptic implementation.
These components automatically trigger system-defined feedback patterns (for example, HapticFeedbackConstants.VIRTUAL_KEY on Android or UISelectionFeedbackGenerator on iOS).
By using the platform’s predefined haptic responses, the experience remains:
- Consistent with user expectations and OS behaviour
- Automatically optimized for each device’s hardware
- Responsive to user system settings (e.g., haptics disabled)
In this level, UDS does not override or alter native behaviour — it simply leverages the OS-provided tactile feedback. If component does not have predefined haptic feedback, in this case, we assign the feedback that reflects its meaning.
Custom UDS components
We have mapped native haptic patterns to our own components.
This mapping ensures that our custom experiences feel aligned with system behaviour while maintaining our design identity.
Examples include:
- Assigning VibrationEffect.EFFECT_CLICK (Android) or .light impact feedback (iOS) to custom components
- Using EFFECT_TICK / UISelectionFeedbackGenerator.selectionChanged() for incremental controls
- Applying notification haptics (e.g., .success, .warning, .error) to system feedback states
All haptics in custom components are implemented through native APIs (VibrationEffect and HapticFeedbackConstants on Android, and the UIFeedbackGenerator family on iOS) to preserve system consistency and accessibility.