Haptico 📳 - easy to use haptic feedback generator with pattern-play support
Switch branches/tags
Nothing to show
Clone or download
Ivan Sapozhnik
Latest commit da7d6d2 Nov 26, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
Assets files Mar 2, 2018
Example Reverting changes Nov 11, 2018
Haptico Reference link added Oct 31, 2018
.gitignore Initial commit Mar 2, 2018
.swift-version Readme updated, podspec updated Apr 1, 2018
CHANGELOG.md Create CHANGELOG.md Nov 24, 2018
Haptico.podspec Podspec updated Oct 31, 2018
LICENSE haptico Mar 2, 2018
README.md updating readme Nov 26, 2018
_Pods.xcodeproj haptico Mar 2, 2018



Haptico is easy to use iOS haptic feedback gnerator. Besides default haptic feedbacks it can play patterns! Checkout Example project.

CI Status Version License Platform

Table of contents


To run the example project, clone the repo, and run pod install from the Example directory first.

How to use

First of all you will need to import Haptico module into your class:

import Haptico

Also keep in mind that depending on the device you are using - the feedback might be different. Starting from iPhone 7 all the iPhones are coming with haptic engine. Prior to iPhone 7 Haptico will use standard vibration. Also Pattern play and impacts are not supported on devices prior to iPhone 7 and iOS 10

1. Generating predefined default feedbacks.

With Haptico you can generate three default types of haptic notifications:

public enum HapticoNotification {
    case success
    case warning
    case error

Here is small example how can you generate Success, Warning and Error feedbacks:

@IBAction func generateSuccess(_ sender: Any) {
@IBAction func generateWarning(_ sender: Any) {
@IBAction func generateError(_ sender: Any) {

2. Generating impact feedbacks

Besides default haptic notifications, Haptico can also generate impact notifications. The library supports three types of impact notifications (available in iOS10+ and staring from iPhone 7):

public enum HapticoImpact {
    case light
    case medium
    case heavy

And to use them call:


Easy, huh?

3. Pattern play

And now something special - Pattern Play. Haptico can play patterns, "coded" as String. Let's take a look at small example:

Haptico.shared().generateFeedbackFromPattern("..oO-Oo..", delay: 0.1)

Each character in this string represents some specific haptic impact:

  • "O" (capital "o") - heavy impact
  • "o" - medium impact
  • "." - light impact
  • "-" - delay which has duration of 0.1 second

4. UI extensions

Haptico comes with a couple of UI Extensions: HapticoButton (which is subclass of UIButton) and UIAlertController extension with haptic feedback.

In order to start using HapticoButton - just set the class name in your Storyboard to HapticoButton. Then with UIControlEvents.touchDown event you will get heavy impact feedback and with UIControlEvents.touchUpInside and UIControlEvents.touchUpOutside you will get light impact feedback.

To use Haptico together with UIAlertController follow this simple example:

func showSuccessAlert() {
    let alert = UIAlertController(title: "Alert Title", message: "Alert Message", preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
    present(alert, animated: true, hapticNotification: .success)


Haptico is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Haptico'


isapozhnik, sapozhnik.ivan@gmail.com


If you like this project and it helps you to reduce time to develop, you can give me a cup of ☕️ 😉



Haptico is available under the MIT license. See the LICENSE file for more info.