iOS library for detecting motion types (walking, running, automotive) and counting steps using location and acceleration data.
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.
iOS developers building fitness, health, navigation, or location-aware applications that need to track user movement and activity levels.
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.
Simple library to detect motion type (walking, running, automotive) and count users steps. This library will make motion detection much more easily.
Provides straightforward callbacks for motion type changes, location updates, and acceleration events, making it simple to add motion-aware features without complex sensor programming.
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.
Functions on all iOS devices without requiring the M7 chip, but can optionally leverage it for improved accuracy, offering flexibility across different hardware.
Allows fine-tuning of speed and acceleration thresholds for motion classification, giving developers control over detection sensitivity.
Includes SOStepDetector for tracking user steps with a simple update block, adding value for fitness and health applications without extra dependencies.
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.
Requires linking CoreMotion and CoreLocation frameworks manually and setting up info.plist keys for location permissions, adding complexity to the setup process.
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.
Continuous use of location and accelerometer sensors for detection can lead to significant battery drain, a common trade-off noted in motion detection libraries.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.