How much does it cost to develop the WhatsApp-like application?

Сьогодні люди проводять більшу частину дня поруч зі своїм смартфоном та відкритими Wi-Fi мережами, тому не дивно, що здебільшого ми отримуємо SMS від банків, а для спілкування з друзями використовуємо різні месенджери. Найпоширеніший з них - WhatsApp. За даними Statista, щомісяця ним користується 1 мільярд людей по всьому світу. Більше того, WhatsApp є найпопулярнішим додатком у 109 країнах світу. Скільки коштує розробка програми для обміну повідомленнями і як створити WhatsApp? Давайте подивимось правді в очі.

Ви можете скористатися нашим калькулятором, щоб оцінити приблизну вартість розробки програми

Statistics link

Основні функції месенджера WhatsApp:

  • Реєстрація за номером мобільного телефону;
  • Події в реальному часі;
  • Обмін файлами та зображеннями;
  • Запис голосової пошти;
  • Голосові дзвінки.

Спочатку ми розглянемо функції, для чого потрібно створити клон WhatsApp, а потім визначимо ціну розробки WhatsApp.

Прототип програми

Як зробити WhatsApp зі зручним дизайном? Важко не помітити, що всі сучасні месенджери зроблені як за кресленням. Хочете вірте, хочете ні, але користувачі роблять це за власним бажанням: у такому стандартному дизайні сигнали чітко розділені, нещодавні розмови відображаються у верхній частині списку контактів, тому знайти те, що вам потрібно, дуже легко.

Ось дизайн кількох популярних додатків для обміну миттєвими повідомленнями:

WhatsAppWhatsApp

ViberViber

HangoutsHangouts

Серверна частина

Як працює WhatsApp? Щоб користувачі могли обмінюватися повідомленнями, потрібен посередник, який зберігатиме та передаватиме їх. Таким посередником є сервер.

Спочатку, WhatsApp використовував XMPP-сервер Ejabberd, але потім перейшов на власне рішення. Основною мовою стала Erlang, але знайшлося місце і для PHP. Сервіс зберігає дані за допомогою бази даних SQLite.

Реєстрація за номером телефону

Оскільки месенджер WhatsApp і подібні додатки замінюють SMS, які ми відправляємо друзям і знайомим, вони зазвичай використовують номер телефону (на відміну від додатків для самотніх які віддають перевагу соціальним мережам). До того ж, це досить зручно: у більшості випадків люди реєструються зі смартфона, в якому є SIM-карта зі своїм номером. При перевірці на неї приходить SMS з кодом підтвердження.

Щоб реалізувати реєстрацію за номером, нашому серверу потрібно буде відправити SMS-повідомлення на номери користувачів, які реєструються. У свою чергу, мобільні клієнти, отримавши це SMS, повинні зчитати код підтвердження і передати його назад на сервер. Для автоматизації цього процесу наші розробники реалізували бібліотеку.

Події в режимі реального часу

Розробка WhatsApp включає в себе реалізацію сповіщень та подій в режимі реального часу, на які відповідно реагує інтерфейс користувача. Для цього використовуються такі технології, як push-повідомлення (бажано, коли додаток знаходиться у фоновому режимі або не активний) і WebSocket (для реалізації постійного двостороннього з'єднання, коли додаток знаходиться онлайн). Такі події, як отримання нового повідомлення та додавання друзів, мають високий пріоритет і передаються по обох каналах (push та WebSocket) в залежності від поточного стану додатку. У свою чергу, статуси "онлайн", "друк", "прочитано" тощо передаються лише через WebSocket і в реальному часі безпосередньо керують інтерфейсом додатку. Детальніше про реалізацію подій в реальному часі ви можете почитати в нашій статті. Створюючи корпоративний месенджер thismo для нашого клієнта, ми використовували:

Обмін файлами та зображеннями

Часи, коли чати існували виключно для обміну текстовими повідомленнями та смайликами, давно минули - тепер користувачі надсилають один одному фотографії, відео та різноманітні посилання. Щоб додати файл в чат вашого додатку, вам потрібно буде реалізувати кілька алгоритмів - це пов'язано з відмінностями у версіях операційних систем і може зайняти значний час на налагодження. На щастя, наші розробники реалізували бібліотеку, яка значно допоможе прискорити цей процес.

Запис голосової пошти

Коли немає можливості зателефонувати, а роздрукувати все необхідне займе багато часу, можливість записати голосове повідомлення простягає руку допомоги. Тому в месенджері, подібному до WhatsApp, повинні бути реалізовані функції запису та відправки голосу. Крім того, повідомлення повинно відтворюватися безпосередньо у вікні чату, без відкриття зовнішніх програм, а також мати паузу і перемотування. Введення файлу здійснюється за допомогою стандартного набору функцій операційної системи. Потім файл відправляється на сервер і чекає моменту, коли його прийме одержувач. У цьому випадку сервер є посередником між клієнтськими додатками.

Голосові дзвінки

Голосові дзвінки, мабуть, є найскладнішим і найдорожчим завданням при створенні такого додатку, як WhatsApp, оскільки якість голосу залежить від багатьох причин, і більшість з них потрібно враховувати і тестувати. Ви навіть можете не додавати голосовий зв'язок спочатку, а зробити це пізніше, як це зробив Slack, який пропонує цю опцію лише для преміум-підписників. Для передачі голосу через IP (VoIP) functionality WhatsApp використовує бібліотеку PJSIP, що забезпечує мультимедійний зв'язок.

WhatsApp

Сподіваємося, ви зрозуміли, як працює WhatsApp і що вам знадобиться для його створення. Тепер давайте перейдемо до більш нагальних питань. Якою буде вартість WhatsApp, враховуючи функції, описані в цій статті?

Вартість розробки WhatsApp

Розробка програми для обміну миттєвими повідомленнями на кшталт WhatsApp коштуватиме $50000:

  • Створення прототипу - від $5000
  • Розробка додатків (iOS + Android) - від $28000
  • Бекенд - від $17000

Не варто забувати і про такий функціонал WhatsApp, як криптографія і дзвінки, вартість залежить від варіантів реалізації цього функціоналу.

Якщо вам потрібна версія без голосових дзвінків, то вона обійдеться в $32000. Звісно, це орієнтовна вартість розробки WhatsApp-подібного месенджера, і для конкретного проекту вона може змінюватися залежно від специфіки, необхідних технологій тощо.

На відміну від Pokémon GO, месенджер WhatsApp простіший у розробці. Але є й інша проблема: на ринку дуже багато схожих рішень, тут важлива ніша. Тому, щоб альтернатива WhatsApp вистрілила, потрібно буде знайти свою унікальну нішу, як це зробив Slack. Його розробники взяли відому ідею, але, створюючи функціонал, орієнтувалися виключно на компанії і невеликі команди, яким важливіше корпоративні комунікації, ніж просто дружнє спілкування.

FAQ

Як змінюється вартість розробки залежно від платформи (iOS, Android чи крос-платформа)?

За приблизними підрахунками, загальна вартість розробки для iOS та Android може мати лише незначну різницю. Однак, ви можете розраховувати на бюджет від $15,000 до $35,000. Але скільки коштує розробка крос-платформного додатку на кшталт WhatsApp? Крос-платформна розробка може трохи перевищувати цей бюджет. Але з різницею в $2,000-5,000 ви отримаєте рішення для обох платформ.

Скільки коштує впровадження наскрізного шифрування та інших заходів безпеки для програми обміну повідомленнями?

Наскрізне шифрування - це ваша гарантія того, що тільки відправник і одержувач зможуть прочитати повідомлення чату. Це відповідь на питання, як зробити такий додаток, як WhatsApp, надійно захищеним від провайдерів послуг, хакерів і навіть урядів. Наскрізне шифрування забезпечує переваги конфіденційності, автентичності та цілісності. Це означає, що ніхто не може змінити повідомлення в процесі передачі, прочитати його або втрутитися в нього. Вартість реалізації наскрізного шифрування становить $20 000 і більше.

Чи є суттєві відмінності у вартості розробки додатків, подібних до WhatsApp, на розвинених ринках та ринках, що розвиваються?

Вартість розробки додатку, подібного до WhatsApp, залежить лише від технологічного стеку, функціональності та команди розробників, яку ви обираєте для свого продукту. Навіть якщо ви плануєте запустити розроблений месенджер на ринках, що розвиваються, таких як Індія чи Бразилія, ви можете створити його де завгодно і вибрати найбільш економічно вигідний варіант. Як українська компанія-розробник, Stfalcon виконувала проекти для клієнтів по всьому світу. Ми завжди розробляємо наші програмні рішення з урахуванням місцевої культури, інтегруємо їх зі специфічними сервісами та створюємо підґрунтя для співпраці з місцевим бізнесом.