Разработка мобильного приложения для умного дома (электрозамки/домофон)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка мобильного приложения для умного дома (электрозамки/домофон)
Средняя
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    760
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    646
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1056
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    878
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    450

Разработка мобильного приложения для умного дома (электрозамки/домофон)

Открыть дверь со смартфона — задача, в которой нет права на сбой. Замок завис, API вернул 503, BLE-соединение не установилось — пользователь стоит у двери. Это не UX-проблема, это инцидент. Поэтому архитектура приложения для управления замками строится не по принципу «как сделать проще», а «что делать когда каждый канал связи упал».

Протоколы и типы замков

BLE-замки (August, Schlage Encode, Nuki) — управление напрямую через Bluetooth без интернета. Дальность 5–15 метров, задержка < 200ms. Нативная реализация через CoreBluetooth (iOS) / Android BLE API. На Flutter — flutter_blue_plus. Каждый замок — GATT-сервис со своими характеристиками. August замки используют 00001523-1212-EFDE-1523-785FEABCD123 service UUID с проприетарным протоколом — официального SDK нет, работаем через реверс-инжиниринг или August API.

Wi-Fi замки (Tuya, Yale Connect, Kwikset Halo) — управление через облако. Задержка 300–2000ms, зависит от интернета. Для Tuya — Tuya Open API: POST /v1.0/devices/{deviceId}/commands с {"commands": [{"code": "switch_1", "value": true}]}.

Zigbee замки (Samsung SmartThings, Kwikset) — через хаб. MQTT-команда на топик zigbee2mqtt/{device}/set с {"state": "UNLOCK"}.

Z-Wave замки (Schlage, Kwikset Z-Wave) — через Z-Wave JS или Home Assistant.

Резервные каналы открытия

Правило: минимум два независимых способа открыть замок. Если основной упал — пользователь не должен звонить в техподдержку стоя на морозе.

Типичная иерархия каналов:

  1. BLE (локальный, без интернета) — первый приоритет при близком расстоянии
  2. Wi-Fi/облако — если BLE не доступен
  3. Резервный PIN-код на замке — при полном отказе системы
  4. Механический ключ — физический fallback

Приложение автоматически определяет доступные каналы и переключается. BLE: проверяем Bluetooth state через FlutterBluePlus.adapterState. Нет BLE или устройство далеко — пробуем Wi-Fi/облако. В UI показываем активный канал пользователю.

Временный доступ и гости

Ключ для гостя на 24 часа, для АирБнБ-жильца на неделю, для домработницы по вторникам с 10 до 14 — это core функциональность.

Реализация зависит от замка. Nuki Web API: POST /smartlock/{smartlockId}/auth создаёт authorization с allowedWeekDays, allowedFromDate, allowedUntilDate, allowedFromTime, allowedUntilTime. August API: POST /access_codes с access_code типом.

Для BLE-замков без облака: временный ключ — это криптографически подписанный токен с временными ограничениями, который приложение передаёт по BLE. Механизм зависит от производителя.

На бэкенде: храним все выданные ключи доступа с метаданными (кому выдан, кем, срок действия, список использований). Push-уведомление владельцу при каждом использовании гостевого ключа.

Домофон и видеозвонок

Видеозвонок с домофона на мобильный = WebRTC + VoIP push. Когда кто-то нажал кнопку домофона:

  1. Домофон публикует событие в MQTT
  2. Бэкенд отправляет VoIP push на iOS (через PushKit) или FCM с priority: high на Android
  3. Приложение просыпается в фоне, устанавливает WebRTC соединение с домофоном
  4. Показывает UI входящего звонка через CallKit (iOS) или android.telecom.ConnectionService

VoIP push на iOS через PushKit — это единственный способ надёжно разбудить приложение для видеозвонка. Обычный push приходит с задержкой 2–30 секунд. PushKit — мгновенно. Требует VoIP сертификат в Apple Developer Portal, entitlement com.apple.developer.pushkit.unrestricted-dispatch.

На Android фоновый сервис с startForeground держит WebRTC соединение готовым. Начиная с Android 14 — ограничения на фоновые сервисы ужесточились, нужен ForegroundServiceType.CAMERA + ForegroundServiceType.MICROPHONE в манифесте.

Журнал событий

Каждое открытие — запись в журнал: кто, каким методом, в какое время. Для съёмного жилья это юридически важно.

Хранение: PostgreSQL с таблицей access_log (id, lock_id, user_id, method, timestamp, result). Индекс по (lock_id, timestamp DESC). Мобильное приложение запрашивает постранично: GET /api/locks/{id}/access-log?page=1&per_page=50.

Сроки

Один тип замка (BLE или Wi-Fi/облако), базовое управление, временный доступ — 6–8 недель. Мультипротокол, домофон с видео, CallKit/VoIP, журнал, уведомления — 4–6 месяцев. Стоимость рассчитывается после определения модели замков и требований к гостевому доступу.