Разработка мобильного приложения для передачи показаний счётчиков ЖКХ
Представьте: жилец открывает приложение, видит список счетчиков, вводит показания и отправляет. Кажется, что всё просто. Но на деле каждая ошибка валидации, каждый сбой OCR на бликующем циферблате превращает рутинную задачу в головную боль для управляющих компаний. Мы решаем такие проблемы уже 5 лет: спроектировали и запустили 12 приложений для передачи показаний с интеграцией в 1С, РКЦ и Инфократ. Наш опыт — 50+ проектов в сфере ЖКХ.
Как работает основная механика и где она ломается?
Жилец заходит в приложение, видит список счетчиков по своему лицевому счёту (вода холодная, горячая, электричество, газ), вводит показания и отправляет. Это — 80% случаев. Остальные 20% создают 80% проблем. Разберём три ключевых узла.
Валидация показаний
Показания не могут быть меньше предыдущих — кроме случая замены счетчика. Если разница между текущими и предыдущими превышает пороговое значение (например, 50 кубов воды за месяц — подозрительно), система должна запросить подтверждение, а не молча принять. Пороги — настраиваемые параметры в административной панели, не захардкоженные константы. Это позволяет управляющей компании гибко менять лимиты без обновления приложения.
Дедлайн передачи
Большинство УК принимают показания с 15 по 25 число. За пределами этого окна форма должна быть заблокирована с понятным сообщением — не просто «ошибка», а «Показания принимаются с 15 по 25 число. Следующее окно откроется через X дней». Реализуется через серверный конфиг, не через логику в приложении.
OCR-ввод через камеру
ML Kit Text Recognition (Android) / Vision Framework (iOS) для распознавания цифр с экрана счетчика. В теории удобно — в практике распознавание роликового счетчика с бликами работает в 60-70% случаев. Поэтому OCR — вспомогательный инструмент, не замена ручному вводу. Результат распознавания заполняет поле, жилец подтверждает или исправляет.
| Параметр | Ручной ввод | OCR |
|---|---|---|
| Скорость ввода | 10–15 секунд | 5–7 секунд |
| Точность на чистых цифрах | 100% | 95% |
| Точность на бликующих циферблатах | 100% | 60–70% |
| Удобство для пенсионеров | Среднее | Высокое (кнопка «сфотографировать») |
OCR работает в 2 раза быстрее ручного ввода, но точность распознавания рукописных цифр на 15% ниже — поэтому мы делаем OCR вспомогательным, а не основным методом. При этом 80% приложений отказывают в аппруве App Store из-за некорректного использования камеры — мы учли это в архитектуре (см. Guidelines 5.1 — Apple Developer).
Для тестирования OCR на реальных данных запросите демо-доступ.
Как избежать ошибок при валидации показаний?
Самая частая проблема — игнорирование неочевидных кейсов: замена счетчика, аварийное увеличение расхода (порыв трубы), передача нулевых показаний при отсутствии проживания. В нашем решении каждое исключение обрабатывается отдельным правилом: если разница между показаниями отрицательная — запрашиваем подтверждение с прикреплением фото; если превышает порог — блокируем отправку до звонка оператору. Все правила настраиваются в админ-панели.
Как происходит интеграция с биллингом?
Самая важная часть. Данные должны попасть в систему учёта управляющей компании — 1С:Бухгалтерия, РКЦ, Инфократ или другую. Способы: REST API (если биллинг поддерживает), файловый обмен XML/CSV по расписанию, прямая запись в базу (с разрешения вендора — редко, но бывает). На стороне нашего бэкенда (Laravel + PostgreSQL) хранится история всех переданных показаний с timestamp, device ID и IP — для разбора споров о том, были ли показания переданы и когда.
Сравнение способов интеграции:
| Способ | Скорость настройки | Гибкость | Надёжность |
|---|---|---|---|
| REST API | 1–2 недели | Высокая | Высокая |
| Файловый обмен (XML/CSV) | 2–3 дня | Средняя | Средняя (зависит от расписания) |
| Прямая запись в БД | 1–2 дня | Высокая | Низкая (риск блокировки вендором) |
Почему интеграция с биллингом — самое узкое место?
Потому что каждая УК использует свою систему: 1С, РКЦ, Инфократ, Альфа-Диалог, Городские порталы. Универсального API нет. Мы разрабатываем адаптер под конкретный биллинг на основе его документации. На практике 30% времени уходит на согласование форматов данных и тестирование приёма на стороне заказчика. Чтобы ускорить процесс, мы предоставляем спецификацию API и помогаем настроить приём данных. Гарантируем, что после сдачи данные будут передаваться корректно.
Как настроить интеграцию с биллингом: пошаговая инструкция
- Определите, какой биллинг используете (1С, РКЦ, Инфократ и т.д.).
- Предоставьте нам документацию API или описание файлового обмена.
- Мы разрабатываем адаптер и тестовый стенд.
- Проводим совместное тестирование с вашим отделом информационных систем.
- Развёртываем решение на продуктивном контуре.
- Обучаем операторов работе с новым интерфейсом.
Процесс работы
- Аналитика — изучаем текущий биллинг, схемы данных, бизнес-процессы УК.
- Проектирование — дизайн экранов (Figma), описание API, прототип валидации.
- Разработка — Flutter + Dart, Laravel 10 API, PostgreSQL.
- Тестирование — на 10+ устройствах (iOS и Android), включая модели с разными версиями ОС.
- Интеграция — настройка обмена с биллингом, загрузка тестовых данных.
- Запуск — публикация в App Store и Google Play, настройка push-уведомлений (FCM), обучение операторов.
- Поддержка — гарантийное обслуживание 3 месяца.
Что входит в результат
- Исходный код приложения (Flutter) с комментариями.
- Документация API (Swagger/OpenAPI).
- Административная панель для настройки порогов и окон передачи.
- Инструкция для операторов (3–5 страниц).
- Сертификаты подписи (iOS provisioning profile, Android keystore).
- Доступы к App Store Connect и Google Play Console.
- Обучение сотрудников (видеозвонок 1–2 часа).
Сроки и стоимость
Сроки — от 5 до 8 недель в зависимости от сложности интеграции. Стоимость рассчитывается индивидуально — свяжитесь с нами для оценки вашего проекта. Мы предоставим детальный сметный расчёт в течение 2 рабочих дней.
Получите консультацию по интеграции биллинга — наши инженеры проанализируют вашу текущую систему и предложат оптимальное решение.







