Проект
«Про Домофон» – это мобильное приложение для управления системами контроля доступа (СКД): домофоны, шлагбаумы, замки. Пользователи имеют возможность открывать двери и ворота через смартфон, используя NFC, BLE и другие технологии. Проекту более 10 лет, он насчитывает десятки тысяч активных пользователей и работает на двух платформах – iOS и Android.
Проблема заказчика
За десятилетие существования кодовая база приложения сильно устарела. Android-версия была написана на Java с использованием древних версий Gradle и библиотек, которые не обновлялись годами. Это привело к целому ряду проблем:
- Приложения нельзя было установить на новые смартфоны из-за ограничений по минимальным версиям SDK.
- Устаревшие зависимости блокировали публикацию обновлений в магазинах приложений.
- Высокое потребление батареи и неоптимальная работа с памятью вызывали «тормоза» и фризы.
- Вылеты и глюки снижали лояльность пользователей.
-
Вносить изменения в старый код было сложно и рискованно – каждый новый функционал мог «сломать» что-то существующее.
Заказчику требуется не просто «починить», а модернизировать продукт: обновить архитектуру, перевести на современные технологии, добавить новые возможности и вернуть приложениям актуальный внешний вид.
Решение
Мы приступили к проекту, вооружившись стратегией постепенного рефакторинга и модульной миграции. Вместо того чтобы переписывать всё с нуля, что парализовало бы бизнес на месяцы, мы решили обновлять продукт поэтапно, сохраняя обратную совместимость и давая пользователям привыкнуть к изменениям.
Ключевые направления работы:
- Обновление инфраструктуры – подняли версии Gradle, заменили устаревшие зависимости на актуальные, обеспечили совместимость с новыми версиями iOS и Android.
- Миграция на современные технологии – переписали UI-модули на Kotlin + Compose (Android) и SwiftUI (iOS), отказавшись от устаревшего Java и UIKit.
- Пересмотр UI/UX – поэтапно обновляется внешний вид приложений, они приводятся к современному минималистичному дизайну, улучшается навигация.
- Добавление нового функционала – расширили возможности системы контроля доступа.
- Оптимизация производительности – сократили потребление батареи и ресурсов, ускорили загрузку экранов.
- Бесключевой доступ – пользователи могут открывать двери и ворота без физического ключа, используя смартфон.
- «Суточные пароли» – гостевой доступ для случаев, когда у гостя нет приложения, сел телефон или забыт дома.
- Улучшенная работа с NFC и BLE – стабильное и быстрое чтение меток, надёжное подключение к устройствам.
- Видео- и голосовая связь – возможность видеть и слышать гостя перед открытием двери.
- Push-уведомления – мгновенные оповещения о событиях (кто открыл дверь, попытка несанкционированного доступа и т.п.).
- История доступа – пользователь видит, кто и когда открывал дверь.
Наш вклад в проект
- Аудит и анализ легаси – мы детально изучили существующую кодовую базу, выявили узкие места и «технические долги», требующие первоочередного внимания.
- Постепенный рефакторинг – вместо «большого взрыва» мы обновляли модуль за модулем, что позволило заказчику продолжать эксплуатацию продукта без остановок.
- Миграция UI на Compose и SwiftUI – полностью переписали пользовательский интерфейс, сделав его современным, быстрым и приятным для глаз.
- Обновление инфраструктуры – привели зависимости в актуальное состояние, чтобы приложения снова можно было публиковать в App Store и Google Play.
- Оптимизация производительности – сократили время отклика, снизили энергопотребление и количество вылетов.
- Внедрение новых функций – добавили суточные пароли, улучшили NFC/BLE, расширили интеграцию с новым оборудованием.
-
Сотрудничество с командой бэкенда – наладили эффективное взаимодействие с разработчиками серверной части, синхронизировали API и протоколы обмена данными.
Результаты
- Десятки тысяч пользователей получили стабильные и быстрые приложения.
- Количество багов в продакшене значительно сократилось.
- Согласно опросам пользователей, удовлетворённость продуктом растёт с каждым релизом.
- Приложения снова прошли модерацию в магазинах – устаревшие зависимости больше не блокируют публикацию.
- Время отклика интерфейса сократилось, а потребление батареи снизилось.
- Новые функции (суточные пароли, улучшенный NFC) получили положительные отзывы и повысили удобство пользования системой.
-
Заказчик получил возможность активно развивать продукт, не боясь «сломать» существующую функциональность.
Хотите обсудить ваш проект?
Мы всегда открыты к новым идеям. Расскажите нам о своей задаче — мы предложим оптимальную архитектуру, рассчитаем сроки и поможем избежать «подводных камней».