
// Messenger
Messenger and Chat App Development: Features and Costs
// Messenger
In this article, we will tell you about the development process of mobile apps for messaging. You are about to find out what stages this process consists of, what features you have to implement in the messenger, how much time (and money) it will require, and what factors influence the development cost.
Mobile messenger development is a non-trivial task that requires relevant experience and knowledge. It’s needed not only to implement a technical part but also to create a unique value proposition, which will allow you to single your project out among the competitors: WhatsApp, Facebook Messenger, Telegram, Skype, and others. This article describes how to find a technical partner and what to pay attention to when choosing him: «Choose a custom erp software development company»
Once you’ve chosen a technical partner for the messenger creation, your cooperation process will proceed according to the following algorithm:
Authorization. The process of authorization in messengers takes place with the help of a phone number, email, or an account on Facebook, Apple, and Google. The app often requires confirmation through a link or SMS. For instance, when a user enters his data (phone number) on WhatsApp, the app sends him an SMS, which is processed automatically in the app. This is very convenient.
Messenger settings. In this section, users can activate or deactivate notifications of messages reading, change a user image or a profile name, change phone number, add new devices, manage blocked contacts, change status, delete their accounts, set the profile parameters, for example, chat notifications, etc. Besides, you have to provide the messenger users with the possibility to set a confidentiality level of their messages and data.
Importing contacts. This feature enables you to transfer your list of contacts from WhatsApp, Facebook Messenger, Telegram, Skype, SIM cards, or another source to your messenger in a few clicks. Beyond that, the feature of fast exchange of chosen contacts with nearby people via a chat, SMS, or wireless communication (Wi-Fi, Bluetooth) is gaining popularity. You can do it with the help of a QR code or a special action: simultaneous shaking of nearby phones.
You should also create a mechanism of comparison of contacts on external sources with the app’s database records. If a match is found, the app won’t transfer this contact to its base, which allows avoiding doubling of contacts in the listing of messenger contacts (it’s a common and irritating problem).
Instant text messages. This is the core feature of the majority of messengers even if they hold themselves as apps for audio or video messages — people send text messages more often.
You can implement this feature in two ways. The first implies that users’ messages are passed through the server and will be stored there. Correspondingly, the interaction between users and the server will happen via the HTTPS protocol with SSL cryptography. The second option implies that the messages will be sent from user-to-user. The only authentication is done by the central server.
Audio and video calls. Despite the fact that the main idea of messengers is instant text messages, most users would like to have the possibility to communicate in other ways from time to time. This feature can be implemented in the following variations: only audio calls and messages, only video calls and messages, or group audio and video calls and messages.
Technically, this functionality can be implemented in several ways. For instance, WhatsApp is using a multimedia communication library with an open source PJSIP to implement the transmission of voice and audio via IP (VoIP). PJSIP is written on C and is using a high-level API combining the SIP signaling protocol with a multimedia structure and a feature of bypass NAT. This API is suitable for all types of systems including mobile ones.
Stickers, masks, emojis. They provide messages with emotions and they can make communication more live or replace whole phrases, but only provided they look nice. If the design of masks or smiles doesn’t evoke good emotions, people at best won’t use them and at worst – they will delete your messenger (a far more likely scenario).
Geolocation. Geolocation can be integrated into the messenger via Google Maps API or devices powered by Android or Map Kit for devices powered by iOS by Apple. This gives the possibility to determine the user’s region to set a necessary interface language automatically. You can also let users share their location and provide a geo filter for masks and emojis just like on Snapchat.
End-to-end encryption (E2EE). If you want to create a messenger app, you have to provide security for users’ personal data. In most apps, it’s achieved by a method called end-to-end encryption (E2EE). It implies that a server doesn’t know secret keys (the system encrypts and decrypts data with their help) and has no involvement in the encryption – it goes sort of «through» the server.
In WhatsApp, such encryption is based on the Signal protocol, in the implementation of which the ECDH algorithms on Curve25519, AES-256, AES-GCM, HMAC-SHA256, and HDKF are used. End-to-end encryption in WhatsApp extends to all types of messages: text, audio, video, multimedia files.
Notification. In modern messengers, the user receives a notification of a personal message or a group message via notifications of a mobile app. Depending on the depth of development of this feature, it can be a simple push notification and a flash of an indicator; a notification with a full text of a new message on the smartphone screen; a notification with the text of a new message on the screen and a possibility to answer it without opening the messenger. This feature can be implemented through Google Cloud Messaging or Apple Push Notifications.
Monetization. If you intend to develop a mobile messenger to make money on it, you need to determine a monetization model beforehand. The most popular option is a combination of a freemium model with advertising.
Freemium implies that the main part of the app functionality will be free; therefore, users will be able to send and receive messages without paying anything. But they will have the possibility to extend the app capabilities by buying exclusive stickers, increasing the number of video calls, increasing the number of members in group calls, and the like.
Project complexity. By the app complexity, they mean the number of features and the depth of their development. The gradation is the following: simple messenger — up to 400 hours, moderate — from 400 to 800 hours, complex — from 800 to 1500 hours or more. It’s easy to notice the difference between a simple app and a complex app if you compare the SMS feature and capabilities of such messengers as Facebook Messenger, Snapchat, WhatsApp, Telegram, Viber, or Signal.
A frontend is a user interface and other elements, which an end user interacts with. One could say that it’s everything that happens in the user’s device. Here is an example of a tech stack for mobile messenger development:
Backend is a hardware/software part of the service responsible for the implementation of the app logic and functionality outside the user’s device. Here is an example of a tech stack for a backend messenger:
Developer’s location. It is important because the average salaries of UX/UI designers, programmers, business analysts, project managers, QA engineers, and other specialists may vary greatly in different countries. Thus, a specialist’s average rate in the USA is $95 per hour, Great Britain and Western Europe — $67 per hour, Eastern Europe — $37 per hour, Asia — $25 per hour.
Interestingly, despite such a wage differential, the quality of work of a specialist from the USA and Ukraine is the same. For this reason, Apple, Microsoft, Dell, IBM, and other American IT companies constantly give a part of the development of their projects to outsourcing to «cheaper» countries.
Here is the estimated cost of the development of a mobile messenger depending on its presumable complexity and developer’s location:
Here is a table with mobile developers’ hourly rates depending on their specialization, location, and skill level: