TGViewer
AppFiles - Mobile Development AppFiles - Mobile Development @applib · 2.17K subscribers
Post #4449 302
Как мы вдвоем писали кроссплатформенный мессенджер: Compose Multiplatform, SFU на Go и сжатие трафика

Идея написать собственный мессенджер появилась не от хорошей жизни. У нас была конкретная прикладная потребность: получить полностью независимый инструмент связи, который не завязан на сторонние облачные сервисы, нормально поднимается на скромных серверах и адекватно ведет себя при перебоях со связью.

Мы разрабатывали другой проект, и поначалу для него был написан минимальный чат на CodeIgniter 4 с Vanilla JS и CSS плюс WebSocket‑сервер на Go. Затем стало очевидно, что такой чат слабоват, а для проекта, ориентированного на бизнес‑среду (B2B), еще и недостаточно безопасен. Тогда мы начали внедрять шифрование. Постепенно улучшали код, дорабатывали архитектуру и в какой‑то момент решили выделить мессенджер в самостоятельный проект — заодно хотелось получить реальный опыт в мобильной разработке. А потом просто увлеклись.

Статья: https://habr.com/ru/articles/1085446/
Платформа: кроссплатформа

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
More from @applib
  1. Oct 6, 2026Визуализация данных с помощью шестиугольной тепловой карты в Swift Charts При создании гра…
  2. Oct 6, 2026Правда о Coil в Jetpack Compose: измеряем реальный оверхед SubcomposeAsyncImage Взял пять…
  3. Oct 6, 2026Rich Push Notifications в iOS: Notification Service Extension, Notification Content Extens…
  4. Oct 6, 2026SweetPad - xcodebuild для людей и агентов Инструмент командной строки, который собирает, з…
  5. Oct 5, 2026Как бы я спроектировал iOS-приложение с нуля, если бы оно должно было прожить 10 лет Тест,…
  6. Oct 5, 2026Gander - просмотр файлов Gander - компактное приложение с открытым исходным кодом для прос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →