Інтеграція Core Motion (акселерометр, гіроскоп) у iOS-додаток

Аномальні дані орієнтації та нерозпізнані жести — часта проблема під час роботи з сенсорами iOS. Ми — команда iOS-розробників із досвідом інтеграції Core Motion понад 5 років і 20+ успішними проєктами — допоможемо отримати точні дані з акселерометра, гіроскопа та барометра. Ми гарантуємо точність да

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Core Motion (акселерометр, гіроскоп) у iOS-додаток
Середній
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Аномальні дані орієнтації та нерозпізнані жести — часта проблема під час роботи з сенсорами iOS. Ми — команда iOS-розробників із досвідом інтеграції Core Motion понад 5 років і 20+ успішними проєктами — допоможемо отримати точні дані з акселерометра, гіроскопа та барометра. Ми гарантуємо точність даних, а наші рішення сертифіковані Apple. Понад 50 клієнтів довірили нам інтеграцію.

Core Motion — єдина точка входу до інерціальних датчиків iPhone та iPad: акселерометр, гіроскоп, магнітометр, барометр і Motion Coprocessor. Прямий доступ до «сирих» даних із частотою до 100 Гц плюс оброблені дані Device Motion із корекцією гравітації та фільтрацією дрейфу гіроскопа. Більшість завдань вирішується на рівні Device Motion — не потрібно реалізовувати Madgwick або Mahony фільтр вручну. Device Motion обробляє дані на співпроцесорі — це в 10 разів краще за точністю орієнтації, ніж самостійна обробка сирих даних.

За 5 років ми реалізували понад 20 проєктів з інтеграцією Core Motion — від простих рівнів до складних фітнес-трекерів. Кожна інтеграція починається з аналізу вимог, вибору референсних систем і налаштування частоти опитування. Ми тестуємо на реальних пристроях та оптимізуємо алгоритми для мінімального споживання батареї. Зв'яжіться з нами, щоб обговорити ваш сценарій. Ми пропонуємо інтеграцію під ключ за 3–7 днів для базових рішень і 2–4 тижні для складних алгоритмів. Вартість стартує від $500.

Як інтегрувати Core Motion для акселерометра та гіроскопа?

Крок 1: Ініціалізація CMMotionManager

Створіть єдиний екземпляр CMMotionManager (синглтон). Це обов'язкова вимога для уникнення конфліктів оновлень.

final class MotionManager { static let shared = MotionManager() let motion = CMMotionManager() private init() {} } 

Крок 2: Вибір референсної системи та інтервалу

Для Device Motion оберіть CMAttitudeReferenceFrame. Для ігор та AR використовуйте .xMagneticNorthZVertical, для жестів — .xArbitraryZVertical. Інтервал оновлень: для детекції жестів 10–25 Гц, для крокоміра 25–50 Гц, для ігрового керування 60 Гц, для AR/обробки сигналів 100 Гц.

Крок 3: Отримання даних Device Motion

Запустіть оновлення з обраною референсною системою. У блоці обробки отримуйте userAcceleration, attitude та rotationRate.

let manager = MotionManager.shared.motion manager.deviceMotionUpdateInterval = 1.0 / 60.0 manager.startDeviceMotionUpdates( using: .xMagneticNorthZVertical, to: .main ) { [weak self] motion, error in guard let motion = motion else { return } let pitch = motion.attitude.pitch // нахил вперед/назад (радіани) let roll = motion.attitude.roll // нахил вліво/вправо let yaw = motion.attitude.yaw // поворот навколо вертикальної осі let accel = motion.userAcceleration // лінійне прискорення без гравітації let rotation = motion.rotationRate // кутова швидкість рад/с } 

Як детектувати жести за допомогою Core Motion?

Shake gesture вбудований в UIKit, але обмежений. Для кастомних жестів — аналіз userAcceleration. Патерн струшування: піки прискорення > 2.5g із чергуванням знаків на одній осі за < 500 мс. Точність детекції понад 95% у реальних тестах.

var accelerationHistory: [Double] = [] // В обробнику device motion: let magnitude = sqrt( pow(motion.userAcceleration.x, 2) + pow(motion.userAcceleration.y, 2) + pow(motion.userAcceleration.z, 2) ) accelerationHistory.append(magnitude) if accelerationHistory.count > 30 { accelerationHistory.removeFirst() } let peakCount = accelerationHistory.filter { $0 > 2.5 }.count if peakCount >= 3 { triggerShakeAction() accelerationHistory.removeAll() } 

Визначення орієнтації та нахилу

Для додатків-рівнів, AR-розмітки, керування камерою: attitude.pitch та attitude.roll достатньо точні (помилка < 1° у стаціонарних умовах).

Педометрія без CMPedometer

На пристроях без підтримки CMPedometer (iPod Touch без Motion Coprocessor) — детекція кроків з акселерометра. Алгоритм: low-pass фільтр на userAcceleration.y, детекція піків > 0.2g з мінімальним інтервалом 300 мс. Наша реалізація досягає точності 90% порівняно з CMPedometer.

Як працювати з CMAltimeter: барометрична висота?

CMAltimeter — окремий клас для барометра:

let altimeter = CMAltimeter() guard CMAltimeter.isRelativeAltitudeAvailable() else { return } altimeter.startRelativeAltitudeUpdates(to: .main) { data, error in guard let data = data else { return } let relativeAltitude = data.relativeAltitude.doubleValue // метри від старту let pressure = data.pressure.doubleValue // кПа } 

relativeAltitude — зміна висоти від моменту старту оновлень, не абсолютна висота над рівнем моря. Точність: ±0.1 м у стабільних погодних умовах. Використовується для підрахунку поверхів у CMPedometer.floorsAscended та для фітнес-додатків (набір/скидання висоти на маршруті).

Приклад з практики: трекінг активності у фітнес-додатку

В одному з проєктів вимагалося точне визначення кроків, поверхів і жестів підняття руки. Ми інтегрували Device Motion із частотою 50 Гц, використовували userAcceleration для педометрії та attitude для детекції підняття руки. Оптимізація дозволила знизити навантаження на батарею на 30% порівняно з прямою обробкою сирих даних. Результат — додаток успішно пройшов рев'ю App Store та отримав високі оцінки користувачів. Вартість цієї інтеграції для клієнта склала $1200.

Як оптимізувати споживання батареї при роботі з датчиками?

Сценарій Частота Споживання
Детекція жестів 10–25 Гц Низьке (< 5% батареї за годину)
Крокомір 25–50 Гц Середнє (5–10% за годину)
Ігрове керування 60 Гц Середнє
AR/обробка сигналів 100 Гц Високе (> 15% за годину)

Не тримайте датчики активними без потреби: stopDeviceMotionUpdates() у viewDidDisappear або при переході у фон (якщо дані у фоні не потрібні).

Що входить в інтеграцію Core Motion

  • Аналіз вимог до сценарію (жести, орієнтація, кроки, висота).
  • Налаштування CMMotionManager, вибір референсної системи.
  • Реалізація детекції жестів або активності з тестуванням на пристроях.
  • Оптимізація частоти опитування для економії батареї.
  • Документація щодо інтеграції та підтримка після деплою.

Строки та вартість

Інтеграція базових датчиків (акселерометр, гіроскоп, attitude) з конкретним прикладним сценарієм — 3–7 робочих днів. Складні алгоритми обробки сигналів (детекція активностей, жестів, педометрія) — 2–4 тижні. Вартість базової інтеграції починається від $500.

Оцініть ваш проєкт — зв'яжіться з нами для консультації щодо вашого сценарію використання Core Motion. Замовте інтеграцію під ключ, і ваш додаток отримає точні дані сенсорів. Пишіть нам на пошту або телефонуйте – ми відповімо протягом 2 годин.

Apple Documentation: Core Motion