Чат в мобильном приложении строят двумя способами: подключают готовый SDK (Sendbird, Stream, CometChat) или Firebase — это 3–5 недель работы и от 1,2 млн ₸, либо разрабатывают собственный сервер на WebSocket — от 2,5 месяцев и от 5 млн ₸. SDK выигрывает по скорости запуска, своя разработка — на масштабе и при жёстких требованиях к хранению данных.

Почему чат сложнее, чем кажется

Снаружи чат — это список сообщений и поле ввода. Внутри — распределённая система, которая обязана доставить сообщение за доли секунды, пережить обрыв сети в метро, синхронизировать историю между телефоном и планшетом и разбудить приложение push-уведомлением, когда система выгрузила его из памяти. Каждая задача по отдельности решаема, но вместе они образуют один из самых трудоёмких модулей в разработке мобильных приложений.

Команда Applications.kz с 2007 года выпустила более 300 проектов для Казахстана, ОАЭ и Таиланда, и чаты встречались нам в маркетплейсах, сервисах доставки, медицинских и образовательных продуктах. Главный вывод за эти годы: ошибка в выборе архитектуры чата обходится в три-четыре раза дороже, чем неделя, потраченная на её обдумывание. Поэтому ниже — механика realtime, честный разбор готовых SDK и собственной разработки, без маркетинговых упрощений.

Как работает realtime: сокеты против опросов

Обычное приложение общается с сервером по схеме «запрос — ответ»: HTTP-запрос ушёл, JSON вернулся, соединение закрылось. Для чата эта модель не годится — сервер не может сам «постучаться» в телефон, когда собеседник что-то написал.

Варианты решения, от худшего к лучшему:

  • Short polling — приложение каждые 3–5 секунд спрашивает сервер «есть новое?». Просто реализовать, но тысячи пустых запросов греют батарею и нагружают бэкенд впустую.
  • Long polling — запрос «висит» открытым, пока серверу нечего ответить. Задержки меньше, но каждое ожидание занимает соединение, и под нагрузкой схема разваливается.
  • WebSocket — постоянный двунаправленный канал: одно TCP-соединение, по которому обе стороны отправляют данные в любой момент. Это отраслевой стандарт для чатов, задержка доставки — десятки миллисекунд.

«Голый» WebSocket в продакшене почти не используют — берут обвязку, которая добавляет каналы, подписки и восстановление сессии: Socket.IO в Node.js-экосистеме, Centrifugo (Go-сервер с presence и историей из коробки) или MQTT, если чат соседствует с IoT-устройствами.

Что ломается именно в мобильных сетях

Главная боль мобильного realtime — нестабильность канала. Телефон переключается с Wi-Fi на LTE и получает новый IP, оператор рвёт «молчащие» соединения через 30–60 секунд, Android-режим Doze замораживает фоновую сеть. Зрелый чат-клиент обязан уметь четыре вещи: heartbeat-пинги каждые 20–25 секунд, переподключение с экспоненциальной задержкой и восстановлением подписок, локальную очередь неотправленных сообщений и докачку пропущенной истории после реконнекта. Если в смете подрядчика этих пунктов нет — чат будет «терять» сообщения, и пользователи это заметят быстрее, чем аналитика.

Готовые чат-SDK: варианты и реальные цены

Готовый SDK — это чужая инфраструктура (сокеты, хранение, доставка) плюс клиентские библиотеки под iOS, Android и Flutter. Вы платите подписку и встраиваете интерфейс в своё приложение.

  • Sendbird — самый зрелый игрок: треды, модерация, перевод сообщений, звонки. Тарифы стартуют примерно от $399 в месяц (~215 000 ₸) за 5 000 MAU и растут ступенями.
  • Stream Chat — сильнейшие SDK для Flutter и React Native, гибкая фильтрация каналов. Ценовой порядок тот же — от ~$399 в месяц, у стартапов есть шанс на льготный тариф.
  • CometChat — бюджетная альтернатива: вход от ~$109 в месяц (~59 000 ₸), функций меньше, но для саппорт-чата и простых диалогов достаточно.
  • Firebase (Firestore + FCM) — формально не чат-SDK, а realtime-база данных: слушатели Firestore сами доставляют обновления, свои сокеты писать не нужно. Для чата на одну-две тысячи пользователей это самый дешёвый вход — оплата по факту использования, на старте укладывается в 5 000–30 000 ₸ в месяц. Механику и ограничения платформы мы детально разобрали в статье о Firebase для мобильного приложения.

Подводные камни у всех SaaS-чатов общие. Цена растёт нелинейно: на 50 000 активных пользователей счёт легко переваливает за 1,5–2 млн ₸ в месяц. Переписка хранится на серверах вендора за пределами Казахстана. Кастомизация упирается в то, что предусмотрел поставщик: нестандартный сценарий вроде аукционных ставок в диалоге придётся «приклеивать» костылями.

Собственный чат-сервер: когда он оправдан

Свой чат — это ваш WebSocket-сервер и ваша база. Типовой стек, который мы применяем: Go или Node.js для бизнес-логики, Centrifugo как сокет-ядро, Redis для pub/sub и статусов «онлайн», PostgreSQL для истории, S3-совместимое хранилище для медиафайлов.

Собственная разработка оправдана, когда выполняется хотя бы одно условие:

  • переписку нужно хранить в Казахстане — требование закона РК «О персональных данных и их защите» плюс отраслевые регламенты для финтеха и медицины;
  • чат — ядро продукта с нестандартной логикой: торги, платные консультации с поминутной тарификацией, сценарные боты;
  • прогноз аудитории — от 30–50 тысяч MAU: подписка на SDK на этих объёмах дороже собственной инфраструктуры;
  • недопустим vendor lock-in — миграция многолетней переписки с SaaS-платформы превращается в отдельный болезненный проект.

Плата за независимость — инженерная ответственность: масштабирование, мониторинг, бэкапы и дежурства теперь ваши. VPS-инфраструктура под чат на 10–20 тысяч пользователей обходится в 40 000–120 000 ₸ в месяц — заметно дешевле подписок, но требует DevOps-сопровождения.

SDK или своя разработка: сравнение

Критерий Готовый SDK Свой сервер на WebSocket
Срок запуска 3–6 недель 2,5–4 месяца
Бюджет разработки 1,2–3,5 млн ₸ 5–12 млн ₸
Ежемесячные расходы при 50 000 MAU от 1,5 млн ₸ подписки 100 000–250 000 ₸ инфраструктуры
Где хранятся данные серверы вендора (США/ЕС) любой дата-центр, включая Казахстан
Кастомизация логики в рамках API вендора без ограничений
Риск vendor lock-in высокий отсутствует
Кому подходит MVP, саппорт-чат, проверка гипотезы продукт с чатом в ядре, регулируемые отрасли, масштаб

Рабочая стратегия для многих продуктов — гибридная: запуститься на SDK или Firebase, проверить, что чатом вообще пользуются, и переезжать на свою инфраструктуру, когда экономика это оправдает. Важно лишь с первого дня изолировать чат за собственным слоем API, чтобы переезд не означал переписывание всего приложения.

Из чего состоит боевой чат кроме сокетов

Сокеты — только транспорт. Полноценный модуль включает ещё шесть подсистем, и именно они занимают большую часть сметы:

  • Push-уведомления через FCM и APNs — без них пользователь узнаёт о сообщении, только открыв приложение; сокет в фоне операционные системы закрывают;
  • статусы доставки — «отправлено / доставлено / прочитано» и индикатор набора текста: мелочь для пользователя, отдельный поток событий для разработчика;
  • история с пагинацией и поиском — на сотнях тысяч сообщений наивные запросы к базе перестают работать, нужны индексы и курсорная подгрузка;
  • медиафайлы — сжатие фото на клиенте, фоновая отправка, превью и докачка после обрыва;
  • модерация — жалобы, бан-листы, фильтр контента: App Store отклоняет приложения с пользовательским контентом без инструментов модерации (Guideline 1.2);
  • панель оператора — просмотр диалогов, ответы от имени поддержки, выгрузка статистики. Как проектировать такой интерфейс, мы разобрали в материале про админ-панель для приложения.

Сколько стоит чат в приложении в Казахстане

Ориентиры Applications.kz на 2026 год — вилки зависят от набора функций, а не от «жадности» подрядчика:

  • чат на Firebase в составе MVP (диалоги один на один, текст и фото, push) — 1,2–2 млн ₸, 3–4 недели;
  • интеграция Sendbird или Stream с интерфейсом под ваш дизайн — 1,8–3,5 млн ₸, 4–6 недель, плюс подписка вендору;
  • собственный сервер с группами, статусами, медиа, модерацией и админкой — 5–12 млн ₸, 2,5–4 месяца;
  • сопровождение и инфраструктура после запуска — от 80 000 ₸ в месяц.

Вилки честные в обе стороны: компактный саппорт-чат реально уложить в нижнюю границу, а если нужны аудиозвонки или сквозное шифрование — закладывайте бюджет выше верхней и дополнительный месяц на тестирование.

Applications.kz разрабатывает мобильные приложения с 2007 года: офис в Алматы, более 300 проектов для рынков Казахстана, ОАЭ и Таиланда. Опишите задачу по телефону +7 (707) 928-13-15 — команда под руководством директора Ивана Калиты подготовит смету с архитектурным решением за 24 часа.

Частые вопросы

Можно ли сделать чат вообще без сокетов, только на Firebase?
Да. Слушатели Firestore сами держат соединение с облаком и доставляют обновления в реальном времени — для диалогов «клиент — менеджер» и небольших сообществ этого достаточно. Ограничения проявятся позже: стоимость растёт с числом чтений, а статусы «печатает» и «онлайн» придётся собирать вручную. До нескольких тысяч активных пользователей это самый быстрый и дешёвый вариант.

Сколько времени занимает интеграция готового SDK?
В среднем 4–6 недель. Неделя уходит на серверную связку — выдачу токенов авторизации и приём webhook-событий, две-три недели на интерфейс под ваш дизайн (стандартный UI вендора почти никогда не оставляют), ещё неделя — на push-уведомления, офлайн-сценарии и тестирование на нестабильной сети.

Выдержит ли собственный чат 100 000 пользователей?
Да, при правильной архитектуре. Centrifugo на одной средней машине держит десятки тысяч одновременных соединений, а горизонтальное масштабирование через Redis добавляет узлы без переписывания кода. Критичнее другое: база истории сообщений должна быть спроектирована под рост с первого дня — переделывать схему на живых данных в разы дороже.

Как чат влияет на расход батареи?
Правильно настроенный WebSocket почти не тратит энергию: соединение простаивает, а редкие heartbeat-пинги дешевле периодических HTTP-опросов в десятки раз. Батарею съедают ошибки реализации — агрессивные реконнекты в цикле и polling «на всякий случай». В фоновом режиме сокет закрывают полностью и полагаются на push через FCM и APNs.

Обязательно ли хранить переписку на серверах в Казахстане?
Если в сообщениях есть персональные данные граждан РК, закон «О персональных данных и их защите» требует хранения на территории страны. Для саппорт-чата интернет-магазина это уже повод выбирать архитектуру с собственной базой; для финтеха и медицины — жёсткое требование, которое сразу исключает большинство зарубежных SaaS-чатов.