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

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

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