Итак, продолжу рассказ о том, как в один прекрасный день, оказавшись на задворках блокировок мессенджеров, я решил создать свой собственный. Изначально проект задумывался как простое средство коммуникации с родными и партнерами по бизнесу. Но вот во что это вылилось спустя всего 4 месяца… Ранее писал о том как всё это начиналось [тут] и [тут]
Аудитория и первые стресс-тесты
На текущий момент у мессенджера уже появилась своя постоянная аудитория, причем многие из этих людей мне совершенно незнакомы! Регистрации идут каждый день, что дает отличный фидбэк, но вместе с тем устраивает настоящий стресс-тест для систем.
Большое внимание пришлось уделить группам. Изначально они были задуманы максимально примитивно, но с ростом числа пользователей и пониманием их потребностей фокус сместился на серьезную доработку групповых чатов:
-
Система модерации: реализовано полноценное управление пользователями.
-
«Режим канала»: возможность моментально превратить группу в канал, где публикации делает только автор, а оформление меняется на формат «ленты».
GitHub
-небольшую краткую readme-инструкцию пользования и некоторые файлы опубликовал на github
Борьба за мегабайты: спасаем память смартфона
Так как в Fury упор сделан на локальное хранение данных (сервер держит передаваемые файлы минимальное время, чтобы экономить ресурсы), вся история и файлы из групп ожидаемо хранятся на телефонах пользователей.
Никогда бы не подумал, что если найдутся 2–3 человека, любящих пофлудить, покидать видосики и картинки, то объем данных в чате за 1–2 недели может легко превысить гигабайт! Для меня это стало личной болью: я видел, как безбожно расходуется место, а приложение начало весить более 2 Гб.
Что было сделано:
-
Сначала я внедрил функционал «Данные и память», позволяющий увидеть, какой именно чат и сколько файлов хранит. Сразу стало понятно, какие группы активнее всего «украшают нашу цифровую помойку».
-
Добавил кнопки очистки: сначала «удалить все файлы старше 30 дней», затем «удалить всё», а позже — «старше 7 дней». Но и этого оказалось недостаточно.
-
Не все пользователи достаточно продвинуты, чтобы заходить в настройки и чистить кэш руками, а контейнер приложения тем временем раздувался бы до бесконечности.
-


В итоге я разработал систему автоматического удаления старых файлов на базе лимита по размеру. По умолчанию на все публичные группы ставится лимит в 200 МБ (его можно менять или отключать). Теперь телефон рядового обывателя спасен, а я могу спать спокойнее.
API и экстренные оповещения
Сейчас я веду разработку botApi. Не уверен, насколько это нужно пускать в массы, ведь сейчас в мессенджере такое ламповое, человеческое общение без всяких «ИИшниц».
Однако API уже пригодился мне для правильных целей. Я создал каналы экстренного оповещения об угрозах БПЛА и прочих опасностях для нескольких регионов (Краснодарский край, Крым, Ростовская область). Для меня актуально получать эти уведомления оперативно. Сейчас система работает на базе анализа профильных TG-каналов с автоматической пересылкой в соответствующие каналы внутри Fury.
Рекомендации: коммерческий задел
Раздел «Рекомендации» — это потенциально неплохая точка для коммерциализации. Именно отсюда (и пока только отсюда) пользователи могут увидеть список рекомендованных каналов.

Я добавляю туда самое интересное, и пользователи активно посещают эти группы.
Звонки: HD-качество и борьба с потерями
Была проделана огромная работа по отладке кодеков и протоколов передачи: UDP, P2P, коррекция потерь, jitter-буфер с изменяемой скоростью воспроизведения, чтобы оставаться в точке актуальности при плохой связи. Всё разработано с нуля и с любовью.
На текущий момент могу сказать уверенно: в Fury можно болтать часами в HD-качестве, потребляя минимум трафика. Система отлично стабилизирует голос даже в нестабильных сетях.
Кстати основной базовый протокол взаимодействия – это тоже апсолютно разработанное с нуля решение, на уровне стека TCP (Да Да! Никаких WebSocket, HTTPS И прочего ширпотреба!) Только RAW TCP/UDP Только хардкор!!! Проведенный аудит безопасности протокола, с помощью анализа исходников с помощью ИИ порадовал ещё больше. Можно почитать тут -> furymsg.ru/security.html
Многие просят видеосвязь… Но там всё сложнее. Учитывая, что даже голос передать «чисто и красиво» — это целая наука, видео выглядит как серьезный вызов и печальный компромисс между качеством и стабильностью. В любом случае, держу это в планах.
Backend: от монолита к микросервисам
Разрабатывая бэкенд, я постоянно совершенствую навыки создания горизонтально масштабируемых систем.
-
Было: монолитный сервис на Go, база данных MySQL, который отвечал за всё сразу: звонки, файлы, основной канал связи.
-
Стало: микросервисная архитектура. Есть внутреннее ядро, взаимодействующее с MySQL и Redis, и коннектор основного канала. Система готова к multi-instance запуску на разных серверах.
В планах — внедрить NATS и еще сильнее оптимизировать работу с SQL и локальным кэшем, чтобы система могла принять миллионы пользователей.
Клиент под Windows и магия KMP
Многие просили Desktop-версию, так как одного Android для работы мало. Писать с нуля на .NET C# было бы круто, но поддерживать два разных приложения в одиночку — самоубийство. Протокол и фичи меняются слишком быстро.
Спасением стала Kotlin Multiplatform (KMP) в связке с IntelliJ IDEA. С минимальными доработками удалось практически скопировать (Ctrl+C / Ctrl+V) большую часть кода и дизайна под Windows. Теперь изменения в одной версии легко переносятся в другую. В теории, так же можно сделать версии под Linux и iPhone (про iOS пока не думаю принципиально из-за санкций и личного отношения к платформе).
Итоги и планы
Большое спасибо ребятам, которые подкидывают идеи, находят баги и даже тем, кто флудит мусором в группах — вы лучшие! ;)
После публикации в RuStore взрывного роста пользователей не случилось, зато прекратились крики о том, что «страшно устанавливать левый APK с сайта». Хотя, как по мне, модерация стора не добавляет особой безопасности, хоть они и проверяют каждое мелкое обновление.
Пока я развиваю проект за свой счет — мне это просто интересно. Но я вижу будущее у Fury в плане объединения с серьезными инвесторами или партнерами для продвижения продукта в массы с четким планом развития и монетизации.
Как вам такой формат? Если нужно что-то добавить или акцентировать внимание на технических деталях — пишите!
Бизнес-партнеры и инвесторы приветствуются!
[наши линки]:
Сайт проекта: https://furymsg.ru
ТГ Канал поддержки: https://t.me/furymessenger
RuStore: https://www.rustore.ru/catalog/app/ru.fury.messenger
Автор: REPLAY_5


