Easy Haptic Feedback Generator ๐ณ
Haptica is a simple and expressive haptic feedback generator for iOS.
$ pod try Haptica
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+ |
Trigger a haptic feedback with a single line:
Haptic.impact(.light).generate()
.light
, .medium
, .heavy
, .soft
, .rigid
).success
, .warning
, .error
)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.
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))
])
Haptica uses Core Haptics by default when available. To use the legacy API:
Haptic.play(notes, legacy: true)
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.
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)
Integrate sound feedback with Peep:
Peep.play(sound: KeyPress.tap)
// 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")
use_frameworks!
pod "Haptica"
github "efremidze/Haptica"
Haptica is available under the MIT license. See the LICENSE file for details.