Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. SOMotionDetector

SOMotionDetector

MITObjective-Cv1.0.1

iOS library for detecting motion types (walking, running, automotive) and counting steps using location and acceleration data.

GitHubGitHub
1.1k stars145 forks0 contributors

What is SOMotionDetector?

SOMotionDetector is an iOS library that detects user motion types such as walking, running, and automotive movement, and counts steps using location and acceleration sensors. It solves the problem of complex motion detection implementation by providing a simple, callback-based API that works across iOS devices without requiring specialized hardware like the M7 chip.

Target Audience

iOS developers building fitness, health, navigation, or location-aware applications that need to track user movement and activity levels.

Value Proposition

Developers choose SOMotionDetector for its ease of integration, background operation support, and hardware-agnostic design that works on all iOS devices while optionally leveraging the M7 coprocessor for enhanced accuracy when available.

Overview

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

Use Cases

Best For

  • Building fitness apps that track walking and running activities
  • Creating navigation apps that adjust behavior based on user movement type
  • Developing health applications that require step counting functionality
  • Implementing background location tracking with motion context
  • Adding motion-aware features to apps without complex sensor programming
  • Prototyping iOS applications that need basic motion detection capabilities

Not Ideal For

  • Apps with strict battery life requirements, as continuous location and accelerometer usage drains power quickly
  • Projects needing real-time, high-frequency motion data for immersive experiences like VR or gaming
  • Applications that must avoid location permissions, since it relies on location updates for detection
  • Teams building exclusively in Swift without Objective-C interoperability setup

Pros & Cons

Pros

Easy Integration

Provides straightforward callbacks for motion type changes, location updates, and acceleration events, making it simple to add motion-aware features without complex sensor programming.

Background Operation Support

Works in the background with proper iOS 9+ configuration, enabling continuous motion tracking even when the app is not active, as highlighted in the README.

Hardware Agnostic Design

Functions on all iOS devices without requiring the M7 chip, but can optionally leverage it for improved accuracy, offering flexibility across different hardware.

Customizable Parameters

Allows fine-tuning of speed and acceleration thresholds for motion classification, giving developers control over detection sensitivity.

Built-in Step Counting

Includes SOStepDetector for tracking user steps with a simple update block, adding value for fitness and health applications without extra dependencies.

Cons

Objective-C Only

The library is written in Objective-C, which can be a barrier for Swift-only projects or developers unfamiliar with Objective-C, requiring bridging headers.

Manual Configuration Required

Requires linking CoreMotion and CoreLocation frameworks manually and setting up info.plist keys for location permissions, adding complexity to the setup process.

Limited Motion Types

Only detects four basic motion types (not moving, walking, running, automotive), missing scenarios like cycling or more granular activities, as admitted in the customization options.

Battery Consumption Concerns

Continuous use of location and accelerometer sensors for detection can lead to significant battery drain, a common trade-off noted in motion detection libraries.

Frequently Asked Questions

Quick Stats

Stars1,058
Forks145
Contributors0
Open Issues10
Last commit1 year ago
CreatedSince 2014

Tags

#ios#objective-c#motion-detection#background-processing#sensor-data#corelocation#cocoapods#coremotion

Built With

C
CoreLocation
O
Objective-C
C
CocoaPods
C
CoreMotion

Included in

iOS51.7k
Auto-fetched 6 hours ago

Related Projects

SwiftLocationSwiftLocation

⚓️ Async/Await CLLocationManager Wrapper for Apple Platforms

Stars3,427
Forks428
Last commit2 years ago
LocationManagerLocationManager

Easily get the device's current location on iOS.

Stars2,556
Forks385
Last commit4 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub