Library / Outcomes & notifications

Connect / charging double thump

A device pairs, a charger connects, a session links — the MagSafe-style double thump.

0ms 100ms 200ms 300ms 400ms
Feel
Two round, low thumps in quick succession. Friendly and hardware-like.
APIs
CHHapticEventCHHapticPattern
Minimum OS
iOS 13+
Raw .md
Core Haptics
import CoreHaptics

func playConnectThump(engine: CHHapticEngine) throws {
    func thump(at time: TimeInterval, intensity: Float) -> CHHapticEvent {
        CHHapticEvent(eventType: .hapticTransient, parameters: [
            CHHapticEventParameter(parameterID: .hapticIntensity, value: intensity),
            CHHapticEventParameter(parameterID: .hapticSharpness, value: 0.25), // round
        ], relativeTime: time)
    }

    let pattern = try CHHapticPattern(
        events: [thump(at: 0, intensity: 0.9),
                 thump(at: 0.16, intensity: 0.7)],
        parameters: [])
    let player = try engine.makePlayer(with: pattern)
    try engine.start()
    try player.start(atTime: CHHapticTimeImmediate)
}
Copied