
// Messenger
// Messenger
У цій статті ми детально розповімо про процес розробки мобільних додатків для обміну повідомленнями. Ви дізнаєтеся, з яких етапів складається цей процес, які функції потрібно реалізувати в месенджері та скільки часу (і грошей) на це знадобиться, а також які чинники впливають на вартість розробки.
Розробка мобільного месенджера - це нетривіальне завдання, яке потребує відповідного досвіду і знань. Причому не тільки для реалізації технічної частини, а й для створення унікальної ціннісної пропозиції, яка дасть змогу виділити ваш проект серед конкурентів: WhatsApp, Facebook Messenger, Telegram, Skype та інших. Як знайти технічного партнера і на що звертати увагу під час його вибору, докладно описано в статті: "Як вибрати компанію-розробника"
Коли ви оберете технічного партнера для створення месенджера, процес вашої співпраці відбуватиметься за таким алгоритмом:
Реєстрація, вхід. Процес реєстрації в додатках для обміну повідомленнями зазвичай відбувається за допомогою номера телефону, електронної пошти або облікового запису у Facebook, Apple та Google. При цьому додаток часто вимагає підтвердження через посилання або SMS. Наприклад, коли у WhatsApp користувач вводить свої дані (номер телефону), додаток надсилає йому SMS, яке автоматично обробляється всередині самого додатка. Що дуже зручно.
Налаштування месенджера. У цьому розділі користувачі можуть вимикати або вмикати сповіщення про прочитання повідомлень, змінювати зображення свого аватара або ім'я профілю, змінювати номер телефону, додавати нові пристрої, керувати заблокованими контактами, змінювати статус, видаляти свої облікові записи, налаштовувати параметри профілю, наприклад сповіщення чату, тощо. Крім того, ви також повинні надати користувачам месенджера можливість налаштовувати рівень конфіденційності їхніх повідомлень і даних.
Швидкий імпорт контактів. Ця опція дає змогу за допомогою кількох кліків перенести список своїх контактів з WhatsApp, Facebook Messenger, Telegram, Skype, Sim-карти або іншого джерела у ваш месенджер. Крім того, зараз також набирає популярності опція швидкого обміну обраних контактів через чат, SMS або бездротовим зв'язком (WiFi, Bluetooth) з людьми, які знаходяться поруч. Останнє можна зробити за допомогою QR-коду або спеціальної дії: одночасне струшування телефонів, що знаходяться поруч.
Також варто створити механізм порівняння контактів на зовнішніх джерелах із записами в базі даних програми. Якщо збіг знайдено, застосунок не буде переносити цей контакт у свою базу, що дасть змогу уникнути дублювання абонентів у лістингу контактів месенджера (часта і дратівлива проблема).
Моментальні текстові повідомлення. Це основна функція більшості месенджерів, навіть якщо вони позиціонують себе як додаток для аудіо- чи відеоповідомлень - текстові повідомлення люди надсилають значно частіше.
Реалізувати функцію можна двома способами. Перший передбачає, що повідомлення користувачів проходитимуть через сервер і там же зберігатиметься історія повідомлень. При цьому взаємодія між пристроями користувачів і сервером відбуватиметься за протоколом HTTPS із криптографією SSL. У другому варіанті повідомлення будуть відправлятися від користувача до користувача. Центральний сервер братиме участь тільки в аутентифікації.
Аудіо- та відеодзвінки. Незважаючи на те, що головна ідея месенджерів - це моментальні текстові повідомлення, більшість їхніх користувачів також хотіли б мати можливість час від часу спілкуватися за допомогою інших способів. Цю функцію можна реалізувати у варіаціях: лише аудіодзвінки та повідомлення, лише відеодзвінки та повідомлення або групові аудіо- та відеодзвінки з повідомленнями.
З технічної точки зору цей функціонал можна втілити кількома способами. Наприклад, WhatsApp використовує мультимедійну комунікаційну бібліотеку з відкритим вихідним кодом PJSIP для реалізації передавання голосу та аудіо через IP (VoIP). PJSIP написаний на C і використовує високорівневий API, об'єднуючи протокол сигналізації SIP з мультимедійною структурою і функцією обходу NAT. Даний API підходить для всіх типів систем, включаючи мобільні.
Стікери, маски, емодзі. Вони додають повідомленням емоцій, можуть зробити спілкування жвавішим або замінити собою цілі фрази, але тільки якщо в них приємний зовнішній вигляд. Якщо дизайн масок чи смайлів не викликатиме в людей приємних емоцій, то в кращому разі їх не використовуватимуть, у гіршому - відмовляться від вашого месенджера (значно ймовірніший сценарій).
Визначення місця розташування. Геолокація може бути інтегрована в месенджер за допомогою Google Maps API для пристроїв на базі Android або Map Kit для пристроїв на базі iOS від Apple. Це дасть можливість визначати регіон користувача, щоб автоматично встановлювати потрібну мову інтерфейсу. Ще можна дозволити користувачам ділитися своїм місцем розташування або добути геофільтри для масок і емодзі, як у месенджері Snapchat.
Наскрізне шифрування (E2EE). Якщо ви хочете створити додаток для обміну повідомленнями, ви повинні забезпечити безпеку особистих даних користувачів. У більшості додатків цього досягають за допомогою методу під назвою end-to-end encryption (E2EE). Це означає, що сервер не знає секретних ключів абонентів (за їхньою допомогою система шифрує і розшифровує дані) і жодним чином не бере участі в шифруванні - воно проходить ніби "крізь" сервер.
У WhatsApp таке шифрування ґрунтується на базі протоколу Signal, у реалізації якого використовуються алгоритми ECDH на Curve25519, AES-256, AES-GCM, HMAC-SHA256, HDKF. Наскрізне шифрування у WhatsApp поширюється на всі типи повідомлень: текст, аудіо, відео, файли мультимедіа.
Сповіщення. У сучасних месенджерах користувач отримує повідомлення про особисте повідомлення чату або групове повідомлення через повідомлення мобільного додатку. Залежно від глибини опрацювання цієї функції це може бути просте push-сповіщення та засвічення індикатора, сповіщення з повним текстом нового повідомлення на екрані смартфона та засвічуванням індикатора, а також сповіщення з текстом нового повідомлення на екрані та можливістю відповісти на нього, не відкриваючи месенджер. Ця функція може бути реалізована через Google Cloud Messaging або Apple Push Notifications.
Монетизація. Якщо ви маєте намір розробити мобільний месенджер, щоб заробити на цьому, то вам потрібно заздалегідь визначитися з моделлю монетизації. Найпопулярніший варіант - це поєднання freemium-моделі з рекламою.
Freemium передбачає, що основна частина функціоналу застосунку буде абсолютно безкоштовною, тому користувачі зможуть спокійно надсилати й отримувати повідомлення, нічого за це не сплачуючи. Але вони зможуть розширити можливості програми, купивши ексклюзивні стікери, збільшивши якість відеодзвінків, розширивши кількість учасників у групових дзвінках тощо.
Складність проекту. Під складністю додатку зазвичай мають на увазі кількість реалізованих у ньому функцій і глибину їхнього опрацювання. Градація тут така: простий месенджер - до 400 годин, помірний - від 400 до 800 годин, складний - від 800 до 1500 годин або більше. Різницю між простим і складним додатком легко помітити, якщо порівняти функцію SMS і можливості таких месенджерів, як Facebook Messenger, Snapchat, WhatsApp, Telegram, Viber або Signal.
Фронтенд - це інтерфейс та інші елементи програми, з якими безпосередньо взаємодіє кінцевий користувач. Також можна сказати, що це все те, що відбувається в пристрої користувача. Ось приклад технологічного стека для розробки мобільного месенджера:
Бекенд - це програмно-апаратна частина сервісу, яка відповідає за реалізацію логіки та функціоналу застосунку поза пристроєм користувача. Ось приклад технологічного стека для бекенда месенджера:
Місцезнаходження розробника. Це важливо, оскільки середня зарплата UX/UI-дизайнерів, програмістів, бізнес-аналітиків, проект-менеджерів, QA-інженерів та інших спеціалістів може сильно різнитися в різних країнах. Так, середня погодинна ставка фахівця зі Сполучених Штатів Америки становить 95 доларів на годину, Великої Британії та Західної Європи - 67 доларів на годину, Східної Європи - 37 доларів на годину, Азії - 25 доларів на годину.
Причому, що цікаво, незважаючи на таку велику різницю в зарплаті, якість роботи фахівців зі США і, наприклад, України, можна порівняти. Тому Apple, Microsoft, Dell, IBM та інші американські IT-компанії постійно віддають частину розробки своїх продуктів на аутсорсинг до "дешевших" країн.
Ось орієнтовна вартість розробки мобільного месенджера виходячи з його ймовірної складності та місцезнаходження компанії-розробника:
Щоб ви могли краще орієнтуватися в зарплатах, ось таблиця, де представлено погодинні ставки мобільних розробників залежно від їхньої спеціалізації, місця розташування та рівня навичок:
Відгуки наших клієнтів
Розробка гнучної екосистеми на основі технології блокчейн