Мажордом - приложение для ЖК с управлением умным домом

Article cover

Как мы помогли Мажордом создать Android-приложение для умного дома и запустить его за 4 месяца


Представьте застройщика, который не просто строит дома, а создаёт экосистему умного жилья: датчики считывают показания счётчиков, управляют отоплением и освещением, отслеживают протечки и движение, видеокамеры контролируют территорию, а шлагбаум автоматически открывается по номеру автомобиля. У этой компании уже было готовое iOS-приложение для жителей, но Android-пользователи оставались без возможности управлять своим умным домом. Мажордом — это застройщик и управляющая компания в одном лице, и им срочно нужна была Android-версия приложения, чтобы все жители могли пользоваться преимуществами умных технологий. Именно с такой задачей к нам обратилась команда Мажордом.

Что хотел клиент?

Мажордом обратился к нам с конкретной задачей:

  • Создать Android-версию существующего iOS-приложения: повторить весь функционал и пользовательский опыт для платформы Android
  • Интегрироваться с системой умного дома: подключиться к существующему API для управления всеми устройствами и датчиками в ЖК
  • Обеспечить паритет функций: Android-приложение должно было поддерживать все возможности iOS-версии без исключений
  • Работать стабильно на разных устройствах: учесть особенности различных Android-устройств и производителей

Основной функционал для реализации:

  • Мониторинг и управление умными устройствами квартиры
  • Просмотр показаний счётчиков и управление отоплением/освещением
  • Видеонаблюдение и домофон с видеозвонками
  • Система заявок в управляющую компанию
  • Чаты с соседями и управляющей компанией
  • Уведомления от датчиков безопасности

Ограничения:

  • Исходный код iOS-приложения недоступен (принадлежит другой команде)
  • Изучение функций только через визуальный анализ готового приложения
  • Готовые дизайн-макеты в Figma без подробной технической документации

Наш подход к задаче

Мы организовали детальное изучение существующего решения:

  • Анализ дизайн-макетов: получили готовые макеты в Figma от клиента
  • Исследование iOS-приложения: детально изучили UI/UX, поведение интерфейса, анимации и пользовательские сценарии
  • Изучение API-документации: проанализировали техническую документацию системы умного дома для корректной интеграции
  • Reverse engineering: поскольку исходный код был недоступен, восстанавливали логику работы приложения через визуальный анализ

Пример нашего подхода: Боль: "Нет доступа к исходному коду iOS-приложения" → Гипотеза: "Можно воссоздать функционал через детальный анализ UX" → Решение: "Покадровое изучение всех экранов и сценариев iOS-версии" → Проверка: "Создали Android-приложение с идентичным пользовательским опытом"

Что мы сделали

Мы создали полнофункциональное нативное Android-приложение с архитектурой enterprise-уровня:

1. Нативная Android-разработка на Kotlin

  • Современный технологический стек: использовали Kotlin как основной язык разработки для лучшей производительности и поддержки
  • Чистая архитектура: применили принципы Clean Architecture и проверенные паттерны проектирования для масштабируемости и поддержки
  • Material Design: адаптировали дизайн под Android-конвенции, сохранив узнаваемость бренда
  • Отзывчивый интерфейс: оптимизировали для различных размеров экранов и разрешений Android-устройств

2. Интеграция с системой умного дома

  • REST API интеграция: подключились к существующему API для управления всеми умными устройствами
  • Реальное время: обеспечили мгновенное обновление данных с датчиков и устройств
  • Управление устройствами: полный контроль освещения, отопления, мониторинг счётчиков
  • Система безопасности: интеграция с датчиками движения, протечек, видеонаблюдением

3. Сложные функции коммуникации

  • WebRTC для видеозвонков: реализовали технологию для качественных видеозвонков через домофон
  • Современная система чатов: с современными UX-ожиданиями пользователей
  • Продвинутый мессенджер: подгрузка сообщений при скролле, поиск по истории, отправка медиафайлов
  • Статусы активности: отображение онлайн-статуса собеседников и индикатора печати сообщений

4. Офлайн-функциональность и надёжность

  • Локальные очереди: система отложенной отправки заявок в УК при отсутствии интернета
  • Локальное хранилище: сохранение данных заявок для предотвращения их потери
  • Автоматическая синхронизация: отправка накопленных данных при восстановлении соединения
  • Работа в лифте: приложение функционирует даже при нестабильном интернете

5. Кроссплатформенная совместимость

  • Тестирование на множестве устройств: проверка работы на различных моделях и производителях
  • Адаптация под разные версии Android: совместимость с широким спектром операционных систем
  • Оптимизация производительности: стабильная работа на устройствах с разными характеристиками

С какими трудностями мы столкнулись

Фрагментация Android-экосистемы

Одинаковый код мог работать по-разному на устройствах разных производителей, особенно Xiaomi и Huawei с их кастомизированными версиями Android.
Что мы сделали: организовали обширное тестирование на множестве устройств, создали систему сбора обратной связи от пользователей для быстрого выявления проблем на конкретных моделях.
Чему научились: важность планирования дополнительного времени на тестирование совместимости и создание библиотеки тестовых устройств для каждого проекта.

Проблемы с WebRTC-библиотекой

Стандартная библиотека для видеозвонков работала нестабильно на некоторых устройствах — звонки домофона не доходили до пользователей.
Что мы сделали: создали собственную копию библиотеки и доработали её под специфику проекта, оптимизировали для проблемных устройств.
Чему научились: для критически важных функций лучше иметь запасные решения и готовность к кастомизации сторонних библиотек.

Отсутствие исходного кода iOS-приложения

Невозможность посмотреть техническую реализацию существующего приложения усложняла понимание некоторых сложных сценариев взаимодействия.
Что мы сделали: провели детальный анализ каждого экрана и функции, создали собственную техническую документацию на основе наблюдений.
Чему научились: навыки reverse engineering и важность подробного документирования всех обнаруженных сценариев использования.

Результаты

  • Запустили полнофункциональное Android-приложение за 4 месяца: все функции iOS-версии успешно перенесены на Android
  • Обеспечили паритет функций: Android-пользователи получили точно такой же опыт, как и владельцы iPhone
  • Создали стабильную архитектуру: чистая архитектура обеспечила легкость поддержки и развития приложения
  • Решили проблему фрагментации: приложение стабильно работает на устройствах разных производителей
  • Реализовали сложные интеграции: видеозвонки, чаты и управление умным домом работают безупречно
  • Обеспечили офлайн-работу: пользователи могут взаимодействовать с приложением даже при проблемах с интернетом
  • Увеличили охват аудитории: все жители ЖК получили доступ к цифровым сервисам независимо от платформы

Выводы

Проект Мажордом продемонстрировал важность детального анализа существующих решений при создании кроссплатформенных продуктов. Даже без доступа к исходному коду удалось создать качественное приложение, которое не уступает оригиналу.

Главное открытие: нативная разработка оправдывает себя для сложных проектов с множественными интеграциями и высокими требованиями к производительности. Android-фрагментация — это реальная проблема, но при правильном подходе к тестированию и архитектуре её можно успешно решить.


Если вашему бизнесу нужно создать мобильное приложение для управления сложными техническими системами или перенести существующее решение на другую платформу, мы готовы помочь. Свяжитесь с нами — обсудим, как создать стабильное и производительное приложение для ваших пользователей!