У цій статті ми детально розповімо про процес розробки мобільних додатків для обміну повідомленнями. Ви дізнаєтеся, з яких етапів складається цей процес, які функції потрібно реалізувати в месенджері та скільки часу (і грошей) на це знадобиться, а також які чинники впливають на вартість розробки.
Коли ви оберете технічного партнера для створення месенджера, процес вашої співпраці відбуватиметься за таким алгоритмом:
Реєстрація, вхід. Процес реєстрації в додатках для обміну повідомленнями зазвичай відбувається за допомогою номера телефону, електронної пошти або облікового запису у Facebook, Apple та Google. При цьому додаток на iOS часто вимагає підтвердження через посилання або SMS. Наприклад, коли у WhatsApp користувач вводить свої дані (номер телефону), додаток надсилає йому SMS, яке автоматично обробляється всередині самого додатка. Що дуже зручно.
Профілі користувачів. У них користувачі можуть додати контакти своїх родичів, друзів, колег і знайомих. Додати аватар і короткий опис про себе та/або про свою роботу. Переглядати історію повідомлень. Крім того, зв'язок зі службою підтримки та функції покупок/підписок у додатках для обміну повідомленнями також зазвичай реалізують у профілях користувачів.
Налаштування месенджера. У цьому розділі користувачі можуть вимикати або вмикати сповіщення про прочитання повідомлень, змінювати зображення свого аватара або ім'я профілю, змінювати номер телефону, додавати нові пристрої, керувати заблокованими контактами, змінювати статус, видаляти свої облікові записи, налаштовувати параметри профілю, наприклад сповіщення чату, тощо. Крім того, ви також повинні надати користувачам месенджера можливість налаштовувати рівень конфіденційності їхніх повідомлень і даних.
Швидкий імпорт контактів. Ця опція дає змогу за допомогою кількох кліків перенести список своїх контактів з WhatsApp, Facebook Messenger, Telegram, Skype, Sim-карти або іншого джерела у ваш месенджер. Крім того, зараз також набирає популярності опція швидкого обміну обраних контактів через чат, SMS або бездротовим зв'язком (WiFi, Bluetooth) з людьми, які знаходяться поруч. Останнє можна зробити за допомогою QR-коду або спеціальної дії: одночасне струшування телефонів, що знаходяться поруч.
Також варто створити механізм порівняння контактів на зовнішніх джерелах із записами в базі даних програми. Якщо збіг знайдено, застосунок не буде переносити цей контакт у свою базу, що дасть змогу уникнути дублювання абонентів у лістингу контактів месенджера (часта і дратівлива проблема).
Моментальні текстові повідомлення. Це основна функція більшості месенджерів, навіть якщо вони позиціонують себе як додаток для аудіо- чи відеоповідомлень - текстові повідомлення люди надсилають значно частіше.
Реалізувати функцію можна двома способами. Перший передбачає, що повідомлення користувачів проходитимуть через сервер і там же зберігатиметься історія повідомлень. При цьому взаємодія між пристроями користувачів і сервером відбуватиметься за протоколом HTTPS із криптографією SSL. У другому варіанті повідомлення будуть відправлятися від користувача до користувача. Центральний сервер братиме участь тільки в аутентифікації.
Обмін файлами мультимедіа. Під час розробки сайту для знайомств чи власного мобільного месенджера потрібно надати користувачам можливість обмінюватися зображеннями, а також короткими аудіо- та відеофайлами. Реалізувати таку опцію можна шляхом завантаження мультимедійного файлу для доставки на HTTP-сервер, після чого користувачеві-одержувачу буде надіслано посилання на контент разом із його ескізом у кодуванні Base64. Також можна використовувати API SOAP і RESTful.
Аудіо- та відеодзвінки. Незважаючи на те, що головна ідея месенджерів - це моментальні текстові повідомлення, більшість їхніх користувачів також хотіли б мати можливість час від часу спілкуватися за допомогою інших способів. Цю функцію можна реалізувати у варіаціях: лише аудіодзвінки та повідомлення, лише відеодзвінки та повідомлення або групові аудіо- та відеодзвінки з повідомленнями.
З технічної точки зору цей функціонал можна втілити кількома способами. Наприклад, 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 передбачає, що основна частина функціоналу застосунку буде абсолютно безкоштовною, тому користувачі зможуть спокійно надсилати й отримувати повідомлення, нічого за це не сплачуючи. Але вони зможуть розширити можливості програми, купивши ексклюзивні стікери, збільшивши якість відеодзвінків, розширивши кількість учасників у групових дзвінках тощо.
Технологічний стек і API. Це набір різних інструментів розробки, які використовуються при створенні мобільних додатків, сайтів та іншого ПЗ. Технологічний стек прийнято ділити на фронтенд, бекенд і API.
Фронтенд - це інтерфейс та інші елементи програми, з якими безпосередньо взаємодіє кінцевий користувач. Також можна сказати, що це все те, що відбувається в пристрої користувача. Ось приклад технологічного стека для розробки мобільного месенджера:
Бекенд - це програмно-апаратна частина сервісу, яка відповідає за реалізацію логіки та функціоналу застосунку поза пристроєм користувача. Ось приклад технологічного стека для бекенда месенджера:
API (Application Programming Interface) - це набір протоколів для з'єднання бекенда і фронтенда, а також інтеграції із зовнішніми сервісами, що розширюють можливості додатку. Ось приклад набору API для розробки месенджера:
Місцезнаходження розробника. Це важливо, оскільки середня зарплата UX/UI-дизайнерів, програмістів, бізнес-аналітиків, проект-менеджерів, QA-інженерів та інших спеціалістів може сильно різнитися в різних країнах. Так, середня погодинна ставка фахівця зі Сполучених Штатів Америки становить 95 доларів на годину, Великої Британії та Західної Європи - 67 доларів на годину, Східної Європи - 37 доларів на годину, Азії - 25 доларів на годину.
Причому, що цікаво, незважаючи на таку велику різницю в зарплаті, якість роботи фахівців зі США і, наприклад, України, можна порівняти. Тому Apple, Microsoft, Dell, IBM та інші американські IT-компанії постійно віддають частину розробки своїх продуктів на аутсорсинг до "дешевших" країн.
Ось орієнтовна вартість розробки мобільного месенджера виходячи з його ймовірної складності та місцезнаходження компанії-розробника:
