Существует два способа создания мобильного приложения для обмена сообщениями: разработка функций чата:
- Собственные решения с нуля
- Интеграция с решениями SDK для мобильных сообщений.
Вот статья о приблизительной разбивке сметных затрат на разработку, Сколько стоит разработка WhatsApp? Это сводится к минимальной первоначальной фиксированной стоимости в 260 000 долларов на разработку в течение 3 месяцев с участием около 6 инженеров и менеджера по продукту. в таких местах, как Силиконовая долина или Нью-Йорк, чтобы создавать базовые функции мобильного чата с нуля. Не говоря уже о стоимости эксплуатации серверов, обслуживании, масштабируемости и расширении возможностей в будущем. Альтернативная стоимость затрат долларов и времени на создание функций чата - это ресурсы, которые нельзя выделить на ваши основные функции (если вы не создаете другой WhatsApp или Facebook Messenger).
Если ваш план не состоит в том, чтобы изобретать велосипед, или вы экономите инженерные ресурсы и привлекаете экспертов для более эффективного использования, или просто тестируете воду с помощью функций чата, то зачастую проще и экономически выгоднее интегрировать стороннюю или решения с открытым исходным кодом напрямую. Они часто предоставляют готовую к использованию настраиваемую библиотеку пользовательского интерфейса, кроссплатформенные SDK, бэкэнд-API, интеграцию с веб-крюками и т. Д. Та же идея, что и при использовании Google Analytics, Parse / Firebase , Crashlytics, AFNetworking, API Facebook, Socket.io , Stripe , Twilio для SMS, Hyphenate.io и т. Д. Многие компании изначально решают создавать собственные решения для чата, но позже понимают, что их решения не масштабируются, как ожидалось, так как клиентская база быстро растет.
Однако, прежде чем вы начнете запачкать интеграцию функций чата, будь то сторонняя интеграция или собственное решение, вы можете изучить следующие области,
- Экономическая эффективность : ROI собственных решений? Добиться экономии на масштабе? Строительство инженерной инфраструктуры стоит очень дорого, с учетом первоначальных фиксированных затрат на разработку, эксплуатационных расходов, обслуживания, расширения функций и т. Д.
- Масштабируемость : низкая задержка, горизонтальное масштабирование, вертикальное масштабирование, масштабирование без простоев, общая производительность и т. Д.
- Надежность : стабильность, надежность, время простоя, гарантия доставки сообщений, отсутствие потери сообщений и посылок и т. Д.
- Мобильное клиентское устройство: время автономной работы устройства, использование сотовых данных, единичное и медленное интернет-соединение,
- Владение : Собственная структура цен по сравнению с многоуровневой и лицензирование с частным развертыванием и хостингом
- Безопасность : шифрование, аутентификация, конфиденциальность
- Переносимость : Поддержка на разных платформах. то есть для мобильных устройств (Android, iOS), настольных компьютеров (macOS, Windows) и различных веб-браузеров.
- Функции : чат один на один, групповой чат, большие объемы и одновременные разговоры, вход на несколько устройств, обмен файлами, обмен и воспроизведение аудиофайлов, видео / голосовые вызовы и т. Д.
- Технологии : существует множество стандартизированных технологий, таких как XMPP , MQTT , длинный HTTP-опрос, Socket.io и т. д. Большинство систем обмена сообщениями строят собственные решения на стандартных протоколах, например, Facebook Messenger основан на MQTT . Многие сторонние поставщики уже предоставляют отличные решения API и SDK для облегчения головной боли разработчиков, такие как Hyphenate.io.
- Людские ресурсы : Можете ли вы найти инженеров с опытом, чтобы выполнить все вышеперечисленные требования?
Еще одна вещь, чтобы рассмотреть это рвозможность включения модных чат-ботов, анализа больших данных (особенно обслуживания клиентов), шифрования и т. д. Проверьте, способны ли сторонние SDK, открытый исходный код или ваша инженерная группа предоставить эти гибкие возможности или макет потенциальной взлетно-посадочной полосы. Некоторые поставщики мобильных решений для обмена сообщениями, такие как Hyphenate.io , имеют богатый набор функций чата и большую гибкость для расширения, готовые для вас.
Наконец, ответы на ваши мысли,
- Сервер против P2P ... по причинам, связанным с регистрацией, моей системе потребуется, чтобы все взаимодействие проходило через центральный сервер. Это то, как работают другие инструменты обмена мгновенными сообщениями ... особенно, когда аудио / видео входит в уравнение?
Гифенат обрабатывает связь или доставку сообщений для вас, а также устанавливает видео / голосовые вызовы.
- Перекрестная связь с другими системами. Существуют ли API-интерфейсы для этого или все провайдеры мгновенных сообщений прилагают все усилия, чтобы сохранить свой протокол в секрете? Природа того, что я разрабатываю, означает, что интеграция может быть только ограниченной, но она определенно кажется целесообразной с точки зрения бизнеса
** С точки зрения безопасности связи, есть 3 основных компонента, которые вы можете рассмотреть в TLS / SSL для безопасности транспортного уровня, OAuth 2.0 для аутентификации и сквозного шифрования. **