Создали мессенджер для безопасного общения
Разработали с нуля защищенное приложение для обмена сообщениями со сквозным шифрованием и масштабируемой архитектурой.Клиент
В рамках развития основного продукта клиенту понадобилось встроить в него приложение для обмена сообщениями. Существовавшие на тот момент решения не подходили, так как были несколько ограничены по функционалу. Кроме того, в ряде стран использование популярных мессенджеров ограничено или нестабильно, а значит, основной продукт потерял бы часть целевой аудитории.
Разработка собственного мессенджера стала бы для бизнеса клиента наилучшим решением, и в 2018 году он обратился к нам с такой задачей. Мы в то время как раз работали над другим его проектом, поэтому вопроса о выборе исполнителя не возникло.
Вызовы
Начали с изучения архитектуры и пользовательских сценариев ключевых решений на рынке, чтобы понять, какие подходы стоят за их реализацией и почему были приняты именно такие технические решения.
Находили компромиссы с клиентом и учитывали мнения друг друга: клиент хорошо понимал, какой функционал нужен его целевой аудитории, а мы, в свою очередь, – как проще, быстрее и дешевле этот функционал реализовать.
От нас потребовалось полное погружение в механизмы и протоколы работы с мессенджерами.

1. Особое внимание архитектуре
Мессенджеры – высоконагруженные приложения: за одну секунду на сервер приходят запросы от тысяч пользователей. Обработка и передача сообщений должны происходить мгновенно. Надежность и стабильность напрямую зависели от выбора архитектурного решения на старте.

2. Высокий уровень безопасности
В сервисах для мгновенного обмена сообщениями вопросы безопасности всегда выходят на первый план. Надежное сквозное шифрование на тот момент еще не было стандартом для всех мессенджеров, как это происходит сегодня. Поэтому доступ третьих лиц к содержимому сообщений должен был быть исключен на уровне архитектуры.
Классический мессенджер в сочетании с передовым функционалом
Внедрение сквозного шифрования
Было действительно сложным, и мы гордимся, что справились с этой задачей. Все типы личных сообщений и звонки (включая чаты, изображения, видео, голосовые сообщения и файлы) защищены алгоритмом шифрования AES-256-CBC. Серверы приложений не имеют доступа к закрытым ключам пользователей. Ключ хранится на самом устройстве и доступен только на нем. Сообщения могут быть расшифрованы только на устройствах участников переписки – сервер не имеет доступа к содержимому.
Полная конфиденциальность
Чтобы дополнительно защитить пользователей от любых киберугроз, разработали несколько функций:
— уведомление о скриншотах;
— скрытие мультимедиа из галереи;
— отсутствие резервного копирования удаленных сообщений.
Современный подход к архитектуре
Для бэкенда выбрали микросервисную архитектуру, а в качестве основного языка – Golang. Он хорошо подходит для высоконагруженных сервисов за счет встроенной работы с конкурентностью и предсказуемого поведения под нагрузкой.
Безупречный UI/UX
У нас уже был опыт в мобильном UX. Но для iOS требования к качеству интерфейса и отзывчивости выше. Плавная работа анимаций и ощущение бесшовности были обязательными условиями.
Дизайнеры проделали грандиозную работу по части мобильной версии – их бэклог был одним из самых объемных. Постоянно проводили дизайн-ревью с клиентом и дорабатывали каждый элемент, чтобы довести визуальную часть до идеала. Вымеряли удобство жестов на iOS буквально по пикселям, но добились своего: получилось удобно, эффектно и лаконично.
Горизонтальное масштабирование базы данных
Базы данных мессенджеров быстро растут, становятся огромными и сложными. Было важно, чтобы база данных легко масштабировалась. Горизонтальное масштабирование, которое мы применили, увеличило производительность за счет распределения данных по разным серверам без снижения отказоустойчивости.
Оптимизация расхода батареи
У каждого приложения свой аппетит, и одно из самых требовательных – это мессенджеры, поскольку они работают фоном. У нас получилось (по результатам внутренних тестов) снизить потребление заряда смартфона на 40% за счет:
— внедрения мониторинга уровня заряда батареи и настройки частоты обновлений в зависимости от уровня заряда;
— уменьшения размера загружаемых данных (сжатие пересылаемых файлов на стороне сервера, кэширование http-ответов).
Таймер сообщений
Добавили функцию исчезающих сообщений – на тот момент функция еще не была широко распространена. Пользователь сам устанавливает время жизни сообщения: по истечении этого срока оно исчезает как с устройства отправителя, так и с устройства получателя.
Бесшовный пользовательский опыт
Мессенджер всегда должен быть у пользователя под рукой: какие-то операции ему привычнее совершать со смартфона, какие-то – только с компьютера. Большое число устройств определялось вполне практической целью: увеличить количество взаимодействий с приложением.
Доступность на любых устройствах
Параллельно мобильной разработке шла работа над веб-версией. Приложение доступно для смартфонов Android и iOS, настольных компьютеров Windows и Mac и даже носимых устройств Apple Watch.
Технологии
iOS
Swift
Android
Kotlin
Бэкенд
Go
Фронтенд
Angular
Облачная инфраструктура
AWS
Мониторинг
Grafana
База данных
MongoDB
Распределенная база данных
ScyllaDB
Результат
В результате клиент получил полноценный коммуникационный слой внутри основного продукта, который позволил удерживать пользователей внутри экосистемы и расширять сценарии использования.
Приложение задумывалось как бесплатное. Основной источник монетизации – работа по принципу супераппа. Мы изначально закладывали архитектуру с учетом будущего подключения сторонних сервисов внутри мессенджера.
Встроенные сторонние сервисы позволяют совершать повседневные операции – покупки в интернет-магазинах, транзакции в онлайн-банкингах, оплату коммунальных служб, заказ еды или вызов такси – непосредственно в мессенджере.
Мессенджер напоминает привычные WhatsApp и Viber, но одновременно содержит дополнительные и на тот момент уникальные функции, не уходя при этом в сложный, разрозненный и непонятный продукт:
- аудио- и видеозвонки;
- голосовые сообщения;
- видеосообщения;
- обмен файлами (фото, видео);
- доступ к геоданным;
- групповая конференция до 10 участников;
- сквозное шифрование;
- исчезающие и скрытые сообщения;
- группы и каналы;
- отправка файлов большого объема.
защита от киберугроз благодаря сквозному шифрованию
меньше потребление заряда батареи по сравнению с другими мессенджерами
скачиваний приложения во всем мире
Что происходит дальше:
Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.
Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.
Договариваемся с вами о следующей встрече, чтобы согласовать предложение.
Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.