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.
Steps to create a messenger
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:
- Agreement. You and representatives of the development company (project manager, business analyst) develop a concept of a messenger and create a project’s scope of work. Then you negotiate cooperation conditions and sign up an agreement.
- Interface prototyping. Business analyst, designer, and/or you create a wireframe of a messenger’s interface, which demonstrates user flows, screens, design elements, and the functionality description.
- Interface design creation. Designers develop interface mock-ups on the basis of the ready wireframes. It’s a static representation of how the app design will look on the side of end users. In some cases, prototypes are created as well — interactive mockups, where all animation, icons, and transitions are working, but the app features aren’t.
- Coding. Bringing a scope of work, mock-ups/prototypes, and features of a messenger into the program code. Frontend developers and backend developers of mobile apps do that.
- App testing. QA specialists test your app code and check its performance, security, functionality, and compatibility with the majority of iOS and Android devices.
- Release and support. The ready and tested app is added to App Store ($99 per month) and Google Play ($25 one time). Besides, the work of the support service should be organized until the launch as well.
Cost of the development of messenger features
All modern messengers vary greatly in design, implementation, and successfulness. However, they all have a set of basic features, which provide the perfect process of real-time communication. If you want to create your messenger, you should start with them. Here is their brief description, implementation time, and implementation cost
given the developer’s average rate of $50/hour.
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.
Registration options of popular messengers. Source
. Users can add contacts of their family members, friends, colleagues, and acquaintances there. They can also add a user image and brief description about themselves and/or their job and view messages history. Besides, connection with customer support and features or purchases/followings on apps to exchange messages are usually implemented in user profiles as well.
. 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.
. 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.
Two methods of instant messaging implementation: when the messages are passed through the server (on the left) and when messages go from user-to-user. Source
. When developing your own mobile messenger, you should let users share photos and short audio and video files. You can implement such a feature by downloading a multimedia file for delivery to an HTTP server, after which a recipient user will get a link to the content along with its Base64-encoded sketch. You can also use API SOAP and RESTful.
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
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 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.
. 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.
. 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.
Factors that have an impact on the development cost
. 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.
Tech stack and API.
Features that the most popular messengers have. Source
It is a set of various development tools, which are used during the creation of mobile apps, websites, and other software. The tech stack is usually divided into a frontend, backend, and API.
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:
- API documentation — Swagger.
- Infrastructure — AWS.
- Framework — Express 4.
- Database — MySQL.
API (Application Programming Interface) is a set of protocols to connect frontend to backend and integrate with external services, which extend the capabilities of the app. Here is an example of a set of APIs for messenger development:
. 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: