efremidze
Haptica
Swift

Easy Haptic Feedback Generator ๐Ÿ“ณ

Last updated Jun 29, 2026
815
Stars
48
Forks
5
Issues
+1
Stars/day
Attention Score
52
Language breakdown
Swift 93.5%
Ruby 4.1%
Objective-C 2.3%
โ–ธ Files click to expand
README

Haptica

CI CocoaPods Carthage SPM Swift License

Haptica

Haptica is a simple and expressive haptic feedback generator for iOS.

$ pod try Haptica

๐Ÿ“ฑ Requirements

| Haptica Version | iOS | Swift | Xcode | |-----------------|-----|-------|--------| | 4.x | 13+ | 5.x | 11+ | | 3.x | 9+ | 5.x | 8+ | | 2.x | 9+ | 4.x | 8+ | | 1.x | 9+ | 3.x | 8+ |

Haptic Feedback Requirements

  • Device with a supported Taptic Engine
  • App running in the foreground
  • System Haptics setting enabled

๐Ÿš€ Usage

Trigger a haptic feedback with a single line:

Haptic.impact(.light).generate()

Feedback Types

  • Impact (.light, .medium, .heavy, .soft, .rigid)
Use to indicate collision or snap-to-position.
  • Notification (.success, .warning, .error)
Use to communicate task results.
  • Selection
Use for navigation through discrete values.

Semantic Types (New)

Use new expressive variants for common interactions:

Haptic.success.generate()
Haptic.warning.generate()
Haptic.start.generate()
Haptic.stop.generate()
Haptic.increase.generate()
Haptic.decrease.generate()

These semantic styles internally map to appropriate UIKit or Core Haptics-based effects.

Custom Vibration Patterns

Haptic.play("..oO-Oo..", delay: 0.1)

| Symbol | Feedback Type | |--------|-----------------| | . | Light impact | | o | Medium impact | | O | Heavy impact | | x | Soft impact | | X | Rigid impact | | - | 0.1s pause |

Or use structured notes:

Haptic.play([
    .haptic(.impact(.light)),
    .haptic(.impact(.heavy)),
    .wait(0.1),
    .haptic(.impact(.heavy)),
    .haptic(.impact(.light))
])

๐Ÿ”ง Core Haptics Support

Haptica uses Core Haptics by default when available. To use the legacy API:

Haptic.play(notes, legacy: true)

๐Ÿ“‚ Play from Pattern File (New) - iOS 16+

Play a Core Haptics pattern from a bundled .ahap file:

Haptic.playPattern(named: "Feedback")

Make sure the file is included in your app bundle and contains a valid haptic pattern.


๐Ÿงน UIButton Extension

Enable haptics for buttons easily:

button.isHaptic = true
button.hapticType = .impact(.light)

Add or remove haptic feedback on control events:

button.addHaptic(.selection, forControlEvents: .touchDown)
button.removeHaptic(forControlEvents: .touchDown)

API Summary:

var isHaptic: Bool
var hapticType: Haptic?
var hapticControlEvents: UIControl.Event?

func addHaptic(_ haptic: Haptic, forControlEvents events: UIControl.Event) func removeHaptic(forControlEvents events: UIControl.Event)


๐Ÿ”Š Sound Effects

Integrate sound feedback with Peep:

Peep.play(sound: KeyPress.tap)

๐Ÿ“ฆ Installation

Swift Package Manager

// For iOS 13+
.package(url: "https://github.com/efremidze/Haptica.git", from: "4.0.0")

// For iOS 9 .package(url: "https://github.com/efremidze/Haptica.git", from: "3.0.0")

CocoaPods

use_frameworks!
pod "Haptica"

Carthage

github "efremidze/Haptica"

๐Ÿ’ฌ Communication

  • Found a bug? โ†’ Open an issue
  • Have a feature request? โ†’ Open an issue
  • Want to contribute? โ†’ Submit a pull request

๐Ÿ“ฐ Mentions


๐Ÿ“„ License

Haptica is available under the MIT license. See the LICENSE file for details.

ยฉ 2026 GitRepoTrend ยท efremidze/Haptica ยท Updated daily from GitHub