Інтеграція мобільних застосунків з пристроями: BLE, NFC, IoT і HomeKit

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

Послуги, які ми пропонуємо
Показано 30 з 134Усі 1735 послуг
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Інтеграція з обладнанням: BLE, NFC, IoT та HomeKit в мобільних додатках

Коли завдання — з'єднати смартфон з фізичним пристроєм, половина проблем знаходиться не у коді, а у прошивці обладнання, характеристиках BLE-сервісів та затримках протоколу. Мобільний розробник працює тут на перетині з командою прошивки, і без розуміння стека знизу вверх результат непередбачуваний.

BLE: Де Зазвичай Все Ламається

Bluetooth Low Energy — основний протокол для носимих пристроїв, медичних приладів, розумних замків та промислових датчиків. Core Bluetooth на iOS та BluetoothGatt на Android реалізують одну специфікацію, але поводяться по-різному в граничних випадках.

Найболючіша точка — управління підключенням. На iOS CBCentralManager потребує збереження посилання на весь час сесії; якщо об'єкт знищується, з'єднання закривається мовчки. На Android BluetoothGatt потрібно явно викликати gatt.disconnect() та gatt.close() окремо — тільки close() без disconnect() залишає пристрій у стані «зайнятий» і наступне підключення падає з помилкою 133 (GATT_ERROR). Помилка 133 — найчастіша в розробці Android BLE, і це не «щось пішло не так», а конкретний випадок переповнення черги GATT або неправильного закриття попередньої сесії.

Сканування також нетривіально. На Android 12+ BLUETOOTH_SCAN потребує прапорця neverForLocation якщо вам не потрібна геолокація — без нього користувач бачить запит дозволу на місцезнаходження при підключенні до замка, що викликає збентеження. На iOS з iOS 13 NSBluetoothAlwaysUsageDescription обов'язковий у Info.plist, і додаток мовчки не буде сканувати без нього — без краху, без логу.

Для надійної роботи в production використовуємо чергу операцій над GATT: write, read, notification subscribe — суворо послідовно через операційну чергу, інакше при конкурентних запитах характеристики повертають помилку ATT_INSUFFICIENT_RESOURCES.

NFC: CoreNFC та Android NFC API

iOS підтримує NFC-читання через CoreNFC з iOS 11, запис — з iOS 13. Важливе обмеження: сесія сканування активна тільки поки живий об'єкт NFCNDEFReaderSession і показує системний UI. Фонове сканування доступно тільки для додатків з entitlement com.apple.developer.nfc.readersession.formats і тільки для ISO 14443 (банківські карти, паспорти) — і цей entitlement видається не всім.

На Android все простіше: NfcAdapter.enableForegroundDispatch() ловить теги на передньому плані без системного UI. Фоновий запуск додатку за NFC-тегом реалізується через intent-filter з ACTION_NDEF_DISCOVERED.

HomeKit та Matter

HomeKit — екосистема Apple для розумного дому. Для інтеграції пристрій повинен мати MFi-сертифікацію (або працювати через Software Authentication для Matter). Мобільний додаток використовує HomeKit фреймворк: HMHomeManagerHMHomeHMRoomHMAccessoryHMServiceHMCharacteristic.

Matter (раніше CHIP) — кроссплатформний стандарт, який підтримують Apple, Google, Amazon та Samsung. На iOS пристрої Matter додаються через MTRDeviceController, на Android — через Google Home SDK або Matter SDK безпосередньо. Переважна сторона Matter: один пристрій працює з HomeKit, Google Home та Alexa без перепрошивки.

Для Flutter та React Native використовуємо flutter_blue_plus та react-native-ble-plx відповідно — обидва активно підтримуються і покривають 90% сценаріїв, але для роботи з GATT-нотифікаціями в background на Android все одно потрібен foreground service.

Як Ми Організуємо Роботу

Процес починається з отримання специфікації BLE GATT (список сервісів, характеристик, формати даних) або HCI-логу від команди прошивки. Без цього розробка перетворюється на реверс-інженірію через nRF Connect або Wireshark over HCI.

Тестуємо на реальних пристроях з першого дня — емулятор BLE в симуляторах не відтворює edge cases переприєднання, втрати сигналу, змін MTU.

Терміни: просту інтеграцію з одним BLE-периферійним пристроєм (показання + команди управління) — 2-4 тижні. Повноцінний IoT-додаток з кількома типами пристроїв, firmware OTA-оновленнями та HomeKit-підтримкою — від 2 місяців.