Haptic Feedback Design for Workout Apps
Why Haptics Matter More Than Sound in the Gym When I built BoxTime, I assumed the bell sound would be the primary way users know a round ended. Then I tested it at an actual boxing gym. Between the...

Source: DEV Community
Why Haptics Matter More Than Sound in the Gym When I built BoxTime, I assumed the bell sound would be the primary way users know a round ended. Then I tested it at an actual boxing gym. Between the music, the bag noise, other people training -- you cannot hear your phone. Haptics became the real signal. The Haptic Engine on iOS Apple gives you three levels of haptic control, from simple to granular: UIImpactFeedbackGenerator The simplest option. Predefined impact styles. let impact = UIImpactFeedbackGenerator(style: .heavy) impact.prepare() impact.impactOccurred() UINotificationFeedbackGenerator Semantic feedback for success, warning, and error states. let notification = UINotificationFeedbackGenerator() notification.prepare() notification.notificationOccurred(.success) Core Haptics (CHHapticEngine) Full control over haptic patterns. This is where it gets interesting for a timer app. import CoreHaptics class HapticManager { private var engine: CHHapticEngine? func prepareEngine() { gua