Haptic Feedback Implementation for Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Haptic Feedback Implementation for Mobile App
Simple
~1 business day
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementing Haptic Feedback for Mobile Apps

Button clicked but user didn't feel it—and clicked again. Double form submission, double order, double payment. Haptic feedback is not UI decoration, it's confirmation mechanism at physical level.

How iOS and Android Differ in Haptics

iOS centers on UIFeedbackGenerator and its three subclasses: UIImpactFeedbackGenerator for tactile impacts of different intensity (.light, .medium, .heavy, .rigid, .soft), UISelectionFeedbackGenerator for picker scrolling, UINotificationFeedbackGenerator for system events (.success, .warning, .error). Generators require explicit prepare() call before use—without it vibration delays 150–200 ms because Taptic Engine needs initialization time. Missing prepare() is most common mistake.

From iOS 17 UICanvasFeedbackGenerator for drawing and CHHapticEngine from Core Haptics for fully custom patterns: can specify intensity and frequency curve over time via CHHapticEvent and CHHapticParameterCurve. Allows, for example, ramping vibration on long press or pulsing pattern for notifications.

On Android before API 31 only Vibrator with primitive patterns via VibrationEffect.createWaveform(). Starting Android 12 (API 31) VibrationEffect.Composition with predefined primitives: PRIMITIVE_CLICK, PRIMITIVE_TICK, PRIMITIVE_THUD, PRIMITIVE_SPIN and others. Problem—fragmentation: specific primitive support depends on manufacturer and device model. Method Vibrator.areAllPrimitivesSupported() mandatory before use. On devices without support need graceful fallback to VibrationEffect.createOneShot().

In Flutter—HapticFeedback from flutter/services.dart with methods lightImpact(), mediumImpact(), heavyImpact(), selectionClick(). For finer iOS control can call CHHapticEngine directly via MethodChannel. Android Flutter uses Vibrator under hood, limiting capabilities on old API.

In React Native—react-native-haptic-feedback or built-in Vibration API. First library gives access to native types on both platforms, but requires platform and API version checks at runtime.

Typical Implementation Mistakes

Haptic without support check. UIFeedbackGenerator silently ignores calls on simulator, but on device without Taptic Engine (iPad mini 4, old iPod touch) prepare() and impactOccurred() also don't crash—simply nothing happens. This is expected Apple behavior. Android differs: Vibrator.hasVibrator() and hasAmplitudeControl() must be checked explicitly.

Haptic overuse in animations. Vibration on every scroll animation frame kills battery and annoys user. UISelectionFeedbackGenerator.selectionChanged() should only call when selected element changes, not on each offset change.

Ignoring system setting. iOS since 13 propagates "System Haptic" setting via CHHapticEngine, but UIFeedbackGenerator automatically respects this setting. Custom patterns via CHHapticEngine require checking CHHapticEngine.capabilitiesForHardware().supportsHaptics and setting engine.playsHapticsOnly.

What's Included

Analyze interactive app elements: buttons, swipes, sliders, pickers, pull-to-refresh, drag-and-drop, error notifications. For each type select intensity and pattern matching Apple HIG and Material Design 3 system guidelines. Implement native calls for each platform with fallback logic. Test on real devices—iOS simulator doesn't reproduce tactile response correctly.

If custom patterns needed (game effects, specific UI events), design CHHapticPattern with intensity curves and deliver via CHHapticPatternPlayer.

Timeline: 1 day for basic standard generator integration. Custom Core Haptics patterns and cross-platform library—2–3 days.