Как мы помогли Мажордом создать 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-фрагментация — это реальная проблема, но при правильном подходе к тестированию и архитектуре её можно успешно решить.
Если вашему бизнесу нужно создать мобильное приложение для управления сложными техническими системами или перенести существующее решение на другую платформу, мы готовы помочь. Свяжитесь с нами — обсудим, как создать стабильное и производительное приложение для ваших пользователей!