Современный человек проводит большую часть дня в непосредственной близости от своего смартфона и открытых вай-фай сетей, поэтому не удивительно, что SMS мы получаем разве что от банков, а вот с друзьями общаемся в основном через всевозможные мессенджеры. Самый распространенный из них — WhatsApp. По данным Statista, ежемесячно его использует 1 миллиард людей во всем мире. Кроме того, WhatsApp — самое популярное приложение в 109 странах мира. Сколько стоит разработка приложения для обмена сообщениями, и как создать WhatsApp? Давайте разберемся.
Используйте наш калькулятор стоимости приложений, чтобы рассчитать стоимость разработки
Главные функции мессенджера WhatsApp
- Регистрация по номеру телефона
- Realtime-события
- Отправка файлов и изображений
- Запись голосовых сообщений
- Голосовые звонки
Сначала мы подробнее рассмотрим функции, нужные чтобы создать клон WhatsApp, а затем определим, сколько стоит WhatsApp.
Прототип приложения
Как сделать WhatsApp с удобным дизайном? Трудно не заметить, что все современные месенджеры сделаны словно под копирку. И пользователям это, как ни странно, по душе: в таком стандартном дизайне реплики четко отделяются, а недавние разговоры отображаются вверху списка контактов, так что все очень просто найти.
Вот дизайн нескольких популярных приложений для обмена мгновенными сообщениями:
Серверная часть
Как работает WhatsApp? Чтобы пользователи могли обмениваться сообщениями, нужен посредник, который будет их хранить и передавать. Таким посредником выступает сервер.
Сначала в WhatsAppиспользовали XMPP-сервер Ejabberd, но затем перешли на самописное решение. В качестве основного языка использовался Erlang, но и для PHP нашлось место. Данные сервис сохраняет с помощью базы данных SQLite.
Регистрация по номеру телефона
Поскольку мессенджер WhatsApp и подобные ему приложения заменяют SMS, которые мы отправляем друзьям и знакомым, обычно они использую регистрацию по номеру телефона (в отличие от приложений для знакомств, которые предпочитают социальные сети). К тому же, это достаточно удобно: в большинстве случаев пользователи регистрируются со смартфона, в который вставлена SIM-карта с их номером. При регистрации на нее приходит SMS с кодом подтверждения.
Чтобы реализовать регистрацию по номеру нашему серверу понадобится отправлять SMS-сообщения на номера пользователей которые регистрируются. В свою очередь мобильные клиенты, получив это SMS-сообщение, должны считать из него код подтверждения и передать его обратно на сервер. Для автоматизации этого процесса наши разработчики реализовали библиотеку.
Realtime-события
Разработка WhatsApp включает в себя реализацию нотификаций и событий в реальном времени, на которые должен соответственно реагировать UI. Для этого используются такие технологии, как push-уведомления (предпочтительно когда приложения находится в фоне либо вообще не активно) и WebSocket (для реализации постоянного двустороннего соединения, пока приложение находится онлайн). Такие события, как получение нового сообщения и добавление в друзья имеют высокий приоритет и передаются по обоим каналам (push и websocket) в зависимости от текущего состояния приложения. В свою очередь статусы «онлайн», «печатает», «прочитано» и т. д. передаются только через websocket и в реальном времени непосредственно управляют UI-ем приложения. Подробнее о реализации событий реального времени вы можете прочитать в нашей статье. Создавая корпоративный мессенджер thismo для нашего клиента, мы использовали:
- Протокол WebSocket
- Мобильная база данных Realm
- Библиотека DataBinding
- RESTful API
- Библиотека Retrofit 2.0
- Firebase Cloud Messaging для пуш-нотификаций
Отправка файлов и изображений
Времена, когда чаты существовали исключительно для обмена текстовыми сообщениями и смайликами, давно прошли — сейчас пользователи постоянно отправляют друг другу фото, видео и всевозможные ссылки. Чтобы добавить файл в чат вашего приложения, понадобится реализовать несколько алгоритмов — это обусловлено отличиями в версиях операционной системы и может занять существенное время на отладку. К счастью, наши разработчики реализовали библиотеку, которая значительно поможет ускорить данный процесс.
Запись голосовых сообщений
Когда нет возможности позвонить, а писать все текстом будет слишком долго, можно записать голосовое сообщение. Поэтому в приложении типа WhatsApp должна быть реализована их запись и отправка. Кроме того, сообщение должно проигрываться прямо в окне чата, без открытия внешних программ и иметь паузу и перемотку. Запись файла осуществляется с помощью стандартного набора функций OS. Далее файл отправляется на сервер, где ждет момента, когда его заберет получатель. Тоесть и в данном случае сервер является посредником между приложениями клиентами.
Голосовые звонки
Голосовые звонки, пожалуй, самая сложная и дорогостоящая задача при создании приложения вроде WhatsApp, поскольку качество голосовой связи зависит от множества причин, и большинство из них требуется учесть и протестировать. Сначала вы можете даже не добавлять голосовую связь, а сделать это позже, как, например, поступил Slack, который предлагает эту опцию только премиум-подписчикам. Для Voice over IP (VoIP) функционала WhatsApp использует библиотеку PJSIP, обеспечивающую мультимедийную коммуникацию.
Надеемся, вы разобрались, как работает приложение WhatsApp и что понадобится для его создания. Теперь же перейдем к более насущным вопросам. Какова будет стоимость WhatsApp, учитывая описанные в этой статье функции?
Стоимость разработки WhatsApp
Разработка приложений для обмена мгновенными сообщениями вроде WhatsApp обойдется вам от $50000:
- Прототипирование — от $5000
- Разработка приложений (iOS + Android) — от $28000
- Бекэнд — от $17000
Также не стоит забывать о таком функционале WhatsApp, как криптография и звонки, стоимость зависит от вариантов реализации данного функционала.
Если вам нужна версия без голосовых звонков, то она обойдется от $32000. Разумеется, это оценочная стоимость разработки WhatsApp, и для конкретного проекта она может меняться в зависимости от специфики, требуемых технологий и т. д.
В отличие от Pokémon GO, мессенджер WhatsApp является более простым в разработке. Но здесь существует другая проблема: на рынке уже много подобных решений. Поэтому, чтобы альтернатива WhatsApp выстрелила, вам понадобится найти свою уникальную нишу, как например, это сделал Slack. Его разработчики взяли всем известную идею, но создавая функционал, ориентировались исключительно на компании и небольшие команды, для которых важны иные функции, чем в случае с дружественными беседами и планированием совместных выходных.