Создать свой мессенджер

Стоит ли создавать еще одно приложение messenger?


У каждого пользователя на телефоне установлены два-пять мессенджеров. Все они используются в той или иной степени.
Со временем некоторые приложения-мессенджеры теряют лидерские позиции, уступая место новым. Так, за один год Skype с первого места, которое он занимал несколько лет, переместился на четвертое. На пятом месте Telegram. Но, похоже, это тоже временный расклад, так как тот же Telegram быстро завоевывает рынок. В 2017 году наметился новый тренд — публичные каналы и чаты. Их наличие привлекает новых пользователей, по сути, превращая мессенджеры в социальные медиа. Возможно, это и стало причиной роста популярности Telegram.
Рейтинг популярности мессенджеров

Статистика роста количества пользователей мессенджеров показывает: потенциал у приложений для обмена сообщениями есть. Но при запуске стартапа нужно быть готовым к конкуренции. Разработка мессенджера для iOs или на Andriod начинается с правильной постановки задачи и подбора инструментов. Так мы получим приложение, которое удовлетворит потребности пользователей.

Хотите создать свой мессенджер? Расскажите о своем проекте РАСЧЕТ ПРОЕКТА

Производительность приложения

Часто бывает так, что команды гонятся за ставшим популярным языком программирования. Они разрабатывают на нем продукт клиента, но в процессе работы понимают, что язык используют неверно. Нужно понимать все плюсы и минусы любого языка и инструмента. Надо использовать тот язык, который лучше всего подходит для построения эффективной системы, а не тот, что сейчас популярен.
В процессе работы думаем о задаче клиента и с этим подходим к выбору инструментов.
Как правило, программируем на PHP. Этот язык программирования используется в Whatsapp, Facebook, Stackoverflow. PHP не уступает остальным языкам по производительности и способен выдержать высокие нагрузки. Плюс этого языка в том, что после выполнения задачи ресурсы сервера высвобождаются, а правильно построенная архитектура и хороший стек технологий перекрывают недостатки языка.
Стоимость разработки проекта на PHP в разы дешевле, чем на языках типа Java, Python. В то же время приложение не уступает по производительности.
При выборе инструментов ориентируемся на то, насколько эффективно с помощью того или иного из них можно решить задачу. По сути, подстраиваем инструменты под архитектуру, а не наоборот.

Работа с большим количеством пользователей и большими нагрузками

В работе используем платформу NodeJS. Как показывает наш опыт, эта платформа подходит для создания чатов и мобильных приложений. NodeJS хорошо устроена и позволяет строить высоконагруженные системы. С коробки чат на NodeJS способен выдержать нагрузку в 10 000 подключений.
Разработка мессенджера для Android или iOS под данную платформу требует использовать Java Script. Этот язык популярен, поэтому найти разработчиков не проблема.
Rethink — используем эту NoSQL DB, так как она производительнее конкурентов. У RethinkDB транслятор языка запросов, так называемого ReQL, реализован не на уровне сервера, а встраивается в качестве предметно-ориентированного языка в язык, на котором пишется клиентское приложение.
Таблицы базы данных хранят JSON-документы, допускающие любой уровень вложенности. У каждого документа прописан уникальный для таблицы-родителя первичный ключ «id». Ссылаясь на ключ, получаем документ. Каждая функция ReQL-запроса работает с данными, полученными из предыдущей функции цепочки. Это позволяет строить более гибкую архитектуру высоконагруженных проектов и не думать о сложности структур данных.
Конкурент NoSQL СУБД — MongoDB. Эта платформа популярна на рынке, но популярность не всегда залог успеха. У MongoDB ряд проблем: при удалении документов не чистится место на диске поэтому приложение должно быть построено так, чтобы документы (файлы объектов) не удалялись часто. Также MongoDB плохо работает с многочисленными массовыми операциями над документами, что противоречит правилам построения высоконагруженной системы.
Основная проблема при построении высоконагруженных проектов — построение архитектуры и потом подстраивания бизнес-логики системы под нее. Такой проект не всегда справляется с большими нагрузками. Поэтому мы делаем наоборот: прорабатываем бизнес-логику всей системы, а уже под нее создаем эффективную архитектуру. В такое приложение можно добавлять новые функции. Оно не потеряет в производительности и не боится высоких нагрузок.

Разработка интерфейса мессенджера

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

  • Проработать пустые состояния чатов, экранов, разделов, где пока еще ничего не происходило. Так пользователю будет понятно, какое действие нужно совершить.
  • Проработать обратную связь. Отправка сообщений, скачивание файлов занимает время. В этот момент пользователю важно показать, что процесс идет.
  • Все возможные ошибки, например, если пропал интернет, пользователь должен понять, что что-то пошло не так.
  • Для верификации номера телефона поставить ограничение по времени на повторную отправку sms с кодом верификации, так как сообщение может еще не дойти, а пользователь успеет шесть раз нажать на повторную отправку кода.
  • Предупредить пользователя о том, что он использует мобильный интернет в момент отправки большого файла.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *