Вступление
Разработка мобильного приложения для паркинга сталкивается с основной проблемой: реальная загруженность парковки — это поток событий, а не статичная таблица. Пользователь ищет место рядом с торговым центром, карта показывает «свободно» — он едет, а парковка полная. Данные устарели на 15 минут. Мы решаем эту проблему через прямую интеграцию с оборудованием и платёжными системами, обеспечивая достоверную картину в реальном времени.
Интеграция с парковочным оборудованием
Реальные данные о занятости мест поступают от шлагбаумов, петлевых детекторов или ультразвуковых сенсоров через протокол MQTT или WebSocket к брокеру (mosquitto, EMQX). Мобильное приложение подписывается на топик парковки и получает обновления в реальном времени. Это требует persistent connection, которую на мобильных устройствах реализуем через Starscream (iOS WebSocket) или OkHttp WebSocket (Android). Соединение рвётся при переходе приложения в background — для iOS используем BGProcessingTask, для Android — WorkManager с периодической проверкой.
Если бюджет не позволяет интеграцию с «железом» — используем данные из платёжной системы: въезд фиксируется при оплате въезда, выезд — при оплате/подъёме шлагбума. Точность ниже, но данные реальные.
Бесшовная оплата
Самый критичный UX-момент — оплата парковки без очереди к терминалу. Три распространённых сценария:
Предоплата по номеру машины. Пользователь вводит номер, выбирает время, платит. На выезде камера ANPR сверяет номер и открывает шлагбаум. Интеграция с российскими системами ANPR (Vocord, ITRIUM) или международными (Genetec, Milestone).
Scan & Pay. QR-код на въезде, пользователь сканирует, приложение запоминает время въезда, оплата при выезде. Реализуется через AVCaptureSession (iOS) или CameraX с BarcodeScanner из ML Kit (Android) — не нужно отдельное SDK для QR.
NFC-метки. Прикосновение к NFC-метке на въезде/выезде. Core NFC (iOS 11+) или NfcAdapter (Android). Ограничение iOS: NFC работает только в foreground, нельзя сканировать в background без специального entitlement.
Для оплаты интегрируем Stripe, ЮKassa или CloudPayments в зависимости от географии — все три предоставляют нативные SDK для iOS/Android.
Сравнение способов оплаты — разработка мобильного приложения
| Способ | Точность данных | Сложность интеграции | Аппаратные требования |
|---|---|---|---|
| Предоплата (ANPR) | Высокая | Средняя | Камеры ANPR |
| Scan & Pay (QR) | Средняя | Низкая | QR-стикер на въезде |
| NFC-метки | Высокая | Низкая (Android) / Высокая (iOS) | NFC-метки |
Как обеспечить live-статус парковки?
Ключевой элемент — выбор протокола обмена данными. MQTT или WebSocket с event-driven моделью. В одном из проектов для сети из 8 паркингов (около 2000 мест) мы заменили polling (каждые 60 секунд) на event-driven архитектуру с MQTT и WebSocket-прокси. Задержка обновления упала с 60 до 1–2 секунд, а трафик снизился в 30 раз: 1440 запросов в день против 10–50 сообщений. Результат: real-time статус стал главным драйвером удовлетворённости пользователей.
Почему real-time статус критичен в мобильном приложении для паркинга?
Отметим: когда водитель видит свободное место и приезжает, а оно занято — это потерянное время и доверие к приложению. Поллинг с интервалом минута даёт устаревшие данные в пиковые часы. Event-driven архитектура (MQTT/WebSocket) гарантирует, что пользователь получает только актуальные изменения, без паразитного трафика. Сравнение архитектур: event-driven лучше polling в 30 раз по объёму трафика и в 30-60 раз по задержке.
Сравнение нагрузок: Polling vs Event-Driven
| Параметр | Polling (каждые 60 сек) | Event-Driven (MQTT) |
|---|---|---|
| Количество запросов в день на парковку | 1440 | 10–50 |
| Задержка обновления | до 60 сек | 1–2 сек |
| Трафик на клиент | 1.4 МБ/день | 45 КБ/день |
Карта и навигация до свободного места
Карту паркинга (поуровневая схема мест) отображаем через SVG-рендеринг или кастомный Canvas. Google Maps и MapKit здесь не подходят — нужен indoor layout. Используем SVG с идентификаторами на каждый парковочный бокс, раскрашиваем в зависимости от статуса через DOM manipulation или нативный Canvas.drawPath.
Навигация до парковки — стандартный Google Maps / MapKit deep link. Навигация внутри паркинга (до свободного места) — опционально через BLE-маяки (Estimote, Kontakt.io) с Indoor Positioning. Это добавляет сложность и цену, обосновано только для крупных многоуровневых паркингов.
Как внедрить real-time статус: пошаговая инструкция
- Аудит оборудования парковки (шлагбаумы, сенсоры, платёжные терминалы).
- Выбор протокола: MQTT или WebSocket в зависимости от нагрузок.
- Настройка брокера (mosquitto, EMQX) и подписка мобильного приложения на топики.
- Реализация persistent connection на мобильной стороне (BGProcessingTask/WorkManager).
- Интеграция с платёжным шлюзом (Stripe, ЮKassa) для синхронизации въездов/выездов.
- Тестирование на реальном оборудовании в течение 2 недель.
- Развёртывание и мониторинг (Firebase Crashlytics + Sentry).
Что входит в разработку под ключ
- Аудит существующего оборудования и платёжной инфраструктуры
- Проектирование интеграций (MQTT/REST от контроллеров, ANPR, платёжный шлюз)
- Дизайн схемы паркинга и мобильного интерфейса
- Разработка MVP за 6–10 недель, полная версия с indoor-навигацией до 4 месяцев
- Тестирование на реальном оборудовании (шлагбаумы, сенсоры)
- Публикация в App Store и Google Play, настройка мониторинга (Firebase Crashlytics + Sentry)
- Гарантийная поддержка 3 месяца, обучение администраторов
Этапы и сроки
| Этап | Длительность |
|---|---|
| Аудит оборудования и платёжной инфраструктуры | 1–2 недели |
| Проектирование интеграций (MQTT/REST, ANPR, платёжный шлюз) | 1–2 недели |
| Дизайн схемы паркинга и мобильного интерфейса | 2–3 недели |
| Разработка MVP | 6–10 недель |
| Разработка полной версии (с indoor-навигацией) | до 4 месяцев |
| Тестирование на реальном оборудовании | 1–2 недели |
| Публикация и мониторинг (Firebase Crashlytics + Sentry) | 1 неделя |
Типичные ошибки при разработке parking app
- Использование polling вместо event-driven — приводит к устаревшим данным и высокому трафику.
- Игнорирование background-обработки на iOS/Android — потеря соединения ведёт к отсутствию обновлений.
- Отсутствие fallback-сценариев оплаты (например, только NFC без ANPR/QR).
- Неучёт ограничений NFC на iOS (только foreground).
Стоимость рассчитывается индивидуально после аудита. Мы работаем уже много лет, реализовали свыше 15 проектов для коммерческих паркингов. Оценим ваш проект в течение 2 дней — получите консультацию и расчёт сроков под вашу инфраструктуру. Свяжитесь с нами, чтобы обсудить разработку мобильного приложения для вашего паркинга.







