Popularity
3.8
Growing
Activity
6.4
-
223
11
22

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: Other Hardware     Layout    
Latest version: v0.1

WatchShaker alternatives and similar libraries

Based on the "Other Hardware" category.
Alternatively, view WatchShaker alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of WatchShaker or a related project?

Add another 'Other Hardware' Library

README

WatchShaker

Simple motion detector for ⌚️ (watchOS) shake gesture.

Swift Version Platform

WatchShaker is a watchOS helper to get your ⌚️ shake movements

Requirements

  • watchOS 6.0+
  • Xcode 11.0+

Installation

Swift Package Manager

Once you have your Swift package set up, adding WatchShaker as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/ezefranca/WatchShaker.git", .upToNextMajor(from: "1.0.2"))
]

Manually

  1. Download and drop WatchShaker folder in your project to your watch target.
  2. Congratulations!

Usage example

Closure Style

import WatchKit
import Foundation
import WatchShaker

class InterfaceController: WKInterfaceController {

    var shaker:WatchShaker = WatchShaker(shakeSensibility: .shakeSensibilityNormal, delay: 0.2)

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
    }

    override func willActivate() {
        super.willActivate()

        shaker.start()

        shaker.startWatchShakerUpdates = { shakeSensibility, error in

            guard error == nil else
            {
                print(error?.localizedDescription)
                return
            }
            print("I'm shook! ⌚️⌚️⌚️")
        }
    }

    override func didDeactivate() {
        super.didDeactivate()
        shaker.stop()
    }

}

Delegate Style

import WatchKit
import Foundation


class InterfaceController: WKInterfaceController {

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
        // Configure interface objects here.
    }

    var shaker:WatchShaker = WatchShaker(shakeSensibility: .shakeSensibilityNormal, delay: 0.2)

    override func willActivate() {

        super.willActivate()
        shaker.delegate = self
        shaker.start()
    }

    override func didDeactivate() {

        super.didDeactivate()
        shaker.stop()

    }

}

extension InterfaceController: WatchShakerDelegate
{
    func watchShaker(_ watchShaker: WatchShaker, didShakeWith sensibility: ShakeSensibility) {
        print("I'm shook! ⌚️⌚️⌚️")
    }

    func watchShaker(_ watchShaker: WatchShaker, didFailWith error: Error) {
        print(error.localizedDescription)
    }
}

Optional Directions

If you interested you can get the direction of the shake on the didShakeWith method.

func watchShaker(_ watchShaker: WatchShaker, didShakeWith sensibility: ShakeSensibility, 
                     direction: ShakeDirection) {
    print("I'm shook! ⌚️⌚️⌚️ \(direction)")
}

ShakeDirection is a simple enum who gives you up, down, left or right direction. The image bellow is the way used to determine what is each direction.

This gentleman bellow for example, is clearly doing a shake with ShakeDirection.shakeDirectionRight 😂

Contribute

We would love for you to contribute to WatchShaker, check the LICENSE file for more info.

Meta

Ezequiel França – @ezefranca and all awesome Contributors

Distributed under the MIT license. See LICENSE for more information.


*Note that all licence references and agreements mentioned in the WatchShaker README section above are relevant to that project's source code only.