Giter Site home page Giter Site logo

dorucioclea / somotiondetector Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mauron85/somotiondetector

0.0 2.0 0.0 649 KB

Simple library to detect motion type (walking, running, automotive) and count users steps. This library will make motion detection much more easily.

License: MIT License

Objective-C 89.38% Ruby 10.62%

somotiondetector's Introduction

SOMotionDetector

Simple library to detect motion for iOS by arturdev .

Based on location updates and acceleration.

###Requierments iOS > 6.0

Compatible with iOS 9

Works on all iOS devices (i.e. not need M7 chip)

This demo project also demonstrates how to use this library to relaunch the app from killed state.

USAGE

Copy SOMotionDetector folder to your project.

Link CoreMotion.framework, CoreLocation.framework.

Import "SOMotionDetector.h" file and set SOMotionDetector's callbacks

#import "SOMotionDetector.h

//...

[SOMotionDetector sharedInstance].motionTypeChangedBlock = ^(SOMotionType motionType) {
    //...
};
    
[SOMotionDetector sharedInstance].locationChangedBlock = ^(CLLocation *location) {
    //...
};

[SOMotionDetector sharedInstance].accelerationChangedBlock = ^(CMAcceleration acceleration) {
    //...    
};

If you need to know when location updates were automatically paused due to your app running in the background...

[SOMotionDetector sharedInstance].locationWasPausedBlock = ^(BOOL changed) {
    //...    
};

###NOTE! To Support iOS > 8.0 you must add in your info.plist file one of the following keys:
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription

To enable background location updates in iOS > 9.0 you must set allowsBackgroundLocationUpdates to YES

    [SOLocationManager sharedInstance].allowsBackgroundLocationUpdates = YES;

You are done!

Now to start motion detection just call

[[SOMotionDetector sharedInstance] startDetection];

To stop detection call

[[SOMotionDetector sharedInstance] stopDetection];

To start step counter call

    [[SOStepDetector sharedInstance] startDetectionWithUpdateBlock:^(NSError *error) {
        //...
    }];

###Detecting motion types

typedef enum
{
  MotionTypeNotMoving = 1,
  MotionTypeWalking,
  MotionTypeRunning,
  MotionTypeAutomotive
} SOMotionType;

CUSTOMIZATION

/**
 * Set this parameter to YES if you want to use M7 chip to detect more exact motion type. By default is No.
 * Set this parameter before calling startDetection method.
 * Available only on devices that have M7 chip. At this time only the iPhone 5S, the iPad Air and iPad mini with retina display have the M7 coprocessor.
 */
@property (nonatomic) BOOL useM7IfAvailable;

/**
 *@param speed  The minimum speed value less than which will be considered as not moving state
 */
- (void)setMinimumSpeed:(CGFloat)speed;

/**
 *@param speed  The maximum speed value more than which will be considered as running state
 */
- (void)setMaximumWalkingSpeed:(CGFloat)speed;

/**
 *@param speed  The maximum speed value more than which will be considered as automotive state
 */
- (void)setMaximumRunningSpeed:(CGFloat)speed;

/**
 *@param acceleration  The minimum acceleration value less than which will be considered as non shaking state
 */
- (void)setMinimumRunningAcceleration:(CGFloat)acceleration;

Installation with CocoaPods

CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries installation in your projects.

Podfile

pod "SOMotionDetector"

LICENSE

SOMotionDetector is under MIT License (see LICENSE file)

somotiondetector's People

Contributors

arturdev avatar l0gg3r avatar ricsantos avatar sanderpick avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.