AirKey
Вместе с компанией AirKey разработали первую систему доступа через мобильные приложения и локальный сервер. AirKey – компания из ОАЭ, созданная на основе компании SmartAirKey. Занимается созданием систем доступа на основе собственных устройств. В 2022 году Endwork присоединилась к команде «Airkey», чтобы вместе переработать мобильное приложение и создать новые решения. Все текущие системы доступа – либо только B2B, либо B2С. Они закрыты для обычного пользователя. «AirKey» же является открытой экосистемой, куда можно подключить офис или дом, не переживая за безопасность. Удобство «Mafatehi» заключается в том, что пользователь использует одно приложение для доступа в любое место: дом, офис, спортзал или коворкинг.
Цели
- Переписать приложения под актуальный на 2023 год стек технологии, параллельно делая редизайн;
- Создать упрощённую копию облачного решения в виде локального сервера и переработать интерфейс;
- Предусмотреть гибкость архитектуры под различные направления бизнеса;
- Упростить процесс установки и настройки серверов и устройств компании.
В будущем приложение станет супераппом. С его помощью можно будет открывать двери и пользоваться лифтами, бронировать жильё и пользоваться парковкой. Со стороны сервера можно будет иметь продвинутую систему мониторинга сотрудников и интеграции с доставкой еды.
Нам важно быть там, где удобно пользователю. У каждого из нас есть мобильный телефон. И мы постоянно с ним взаимодействуем, решаем повседневные задачи. Поэтому мы решили реализовать все возможности доступа в мобильном приложении «Mafatehi».
Артём Василевский – бизнес-аналитик AirKey.
Результаты
С первого дня работы над проектом до запуска MVP прошло полгода. За это время мы вместе с командой «AirKey»:
- Переписали архитектуру приложений;
- Разработали микросервисную архитектуру сервера;
- Предусмотрели систему безопасности;
- Продумали дизайн-концепцию.
Аналитика
Аналитики Endwork помогали разрабатывать концепцию приложения. Мы провели большую исследовательскую работу:
- Собирали ожидания пользователей;
- Тестировали первоначальную концепцию на аудитории;
- Провели 6 итераций глубинных интервью по 10–12 респондентов в каждой.
Дизайн
Интерфейс после изменений оказался настолько прост в освоении, что впервые увидевшие проект пользователи смогли решать сложные задачи с доступом. Документация по эксплуатации теперь осталась только для галочки.
Для мобильных приложений мы полностью переработали дизайн и упростили регистрацию. Итогом стало уменьшение времени регистрации с 2 минут до 10 секунд. Все необходимые функции находятся на поверхности и легко доступны из главного меню.
Разработка
Для разработки приложений уже использовались нативные варианты, мы решили не отказываться от них из-за необходимости тонкой настройки BLE.
Изначально приложения были написаны на java и ObjectiveC. Мы переписали их на kotlin и swift, а еще перевели Ui на и SwiftUi вместо UiKit. Это позволит легче поддерживать приложение.
Для создания локального сервера мы выбрали python с асинхронным фреймворком FastAPI. Это помогло одновременно быстро писать высокоэффективный код и пользоваться внутренними наработками.
Фронтенд мы сделали на React с библиотекой react-admin для работы с большим количеством таблиц. Это сократило сроки создания интерфейса.
Архитектура
Чтобы реализовать локальный сервер, нужно было дать пользователям единую точку входа для получения ключей, а компаниям — собственный отказоустойчивый сервер для контроля.
- Создали ci/cd пайплайны для работы с docker.
- Написали свой инсталлятор для локального сервера.
- В итоге компания смогла разворачивать решения в течение 10 минут с нуля на любом компьютере. Кроме того, любые изменения стали быстро доходить до пользователя.
- Все ключи приходят на единое облако для мобильных приложения, а полностью закрытые системы могут работать через VPN.
Системам доступа очень важна безопасность. Мы добавили в приложения и локальный сервер end-to-end шифрования для получения цифровых ключей.
Для B2C сегмента первые в мире реализовали в качестве асинхронного шифрования протокол Диффи-Хеллмана на эллиптических кривых.
Тестирование
Сервер мы покрывали тестами с четырёх сторон:
- Юнит тесты — пишут разработчики во время написания кода;
- Тестирование эндпоинтов для фронтенда — pytest;
- Тестирование фронтенда — selenium;
- Интеграционное тестирование — поскольку система очень сложная, то действия в мобильном приложении приводят к изменению на локальных серверах. Это потребовало дополнительного тестирования.
Для мобильных платформ использовали Appium.
Проблемы
В ходе создания проекта мы столкнулись с рядом проблем.
Ошибки:
Первым делом мы заметили, что в системе уже происходят ошибки, и они никак не регулируются. Мы подключили ко всей облачной архитектуре Zabbix и ELK, а для мобильных приложений — Crashlitics. Так мы смогли видеть все ошибки и оперативно на них реагировать.
Аналитика:
После нескольких интервью с пользователями мы заметили ключевые боли в использовании мобильных приложений:
- Долгая и сложная регистрация и восстановление пароля;
- Половина необходимых фич спрятана глубоко в настройках;
- Работа приложения с железом неочевидна для пользователя и нестабильна.
СМС:
В середине проекта вектор компании сменился с только B2B на B2B и B2C, где клиенты это туристы в ОАЭ. Проблема возникла с тем, что не на все номера местный СМС-провайдер мог отправить СМС. Мы разделили номера на категории: поддерживаемых стран и не поддерживаемых. После этого СМС для номеров из РФ и ОАЭ отсылались через местных провайдеров, а для всех остальных через — Sinch. Так же мы предусмотрели возможность flashcall для всех клиентов компании.
Награды и признание
На международной выставке Intersec всегда было много людей возле стенда AirKey. Демонстрация технологи поразила всех посетителей!