What do you use your phone for?
If you are among the 97% of the world’s population, you have sent a text or a chat message at least once in your life. On average, people send out over 14 texts a day via apps or straight from their phone, ranking messaging as the most highly-used feature on smartphones, with voice/video calling coming as the close 2nd most used phone feature.
So in today’s post, we’ll chat a lot (just couldn’t resist this pun), in particular on how to develop a mobile chat app.
Though the messaging market already has its unicorn including WhatsApp (800 million active daily users), Facebook Messenger (700M daily active users) and WeChat (549M daily active users), there’s still enough room left for additional creative solutions as the recent trends reports shows:
So how to create a chat app like WhatsApp? Start with understanding the tech stack, which goes into it first.
Technology Stack For Building a Mobile Chat App
WhatsApp architecture was priced at $19 billion by Facebook during the acquisition. Ok, so does it mean that their technology is really complicated and hard to implement?
Facebook acquired WhatsApp primarily due to the large and fast-growing user base – a point to consider for future monetization strategy.
So, how do you make an app like WhatsApp from a tech standpoint? Here’s what their team has used:
Ejabberd XMPP server is used to processes hundreds of thousands of messages instantly with little to no delays. This application server pairs perfectly with the Erlang programming language, which powers up the entire app. It may not be the standard choice, but this language is rather flexible and allows making quick and instant fixes without much refactoring. However, you are not obliged to use the same language for chat app development. For instance, instant messaging apps like Telegram and Kik use Node.js for all the backend coding.
For multimedia file storage, WhatsApp uses YAWS – a high-performance web server developed for high-load apps with dynamic content. It’s also primarily styled for Erlang language.
Originally WhatsApp used XMPP (Extensible Messaging and Presence Protocol) to transfer all the users’ messages. The benefit of this technology is that it supports both one-to-one and multi-user chat conversations. Yet, the company eventually chose to switch to a new internal protocol to optimize their server performance.
Their operating system is FreeBSD – a robust, stable open source Unix-like system our chat app developers have had great experience with too.
The databases are powered up both by Mnesia (default database for Erlang) and additional MySQL databases.
Ok, so this should have satisfied the coder’s curiosity. Now let’s take a closer look on the more prominent and visual features a cool new chat app should have.
Essential Features For a Chat App
To define the final chat app development cost, let’s take a look at the key features. If you plan to build a complete Whatsapp clone, start with:
Registration Page and Contact Integration
Most instant messaging apps require users to sign-in with a phone number. WhatsApp additionally sends an SMS confirmation code for security reasons. Usually, this is done through a 3rd party service API (e.g. Twilio or Nexmo).
Next, the user should be suggested to import contacts from his address book as there’s no fun in a chat app when you have no one to chat with ☺ You may consider additional contact integration options such as with Facebook/Gmail, however, that will add some extra numbers to the final price tag.
What else to consider:
- Profile UX/UI – what customization options will you offer? Do you want to allow users to link to other social profiles? Any custom design features?
Here’s how we solved this for CityHour – a cool social networking app for entrepreneurs dubbed as “LinkedIn on steroids”.
Ok, so your app should be able to send and receive messages – that’s a no-brainer, right?
But things are not that simple if you consider all the tiny details that actually go into messaging app development. Here’s a quick checklist to guide you through the process:
- How will the users start the dialog?
- Do you plan to offer one-to-one or group chats too? WhatsApp recently released a “Broadcast list” feature, which allows users to send the same message to a selected group of contacts.
- Will your app support only private or public chats as well?
- How about super-secret security chats with self-distractive messages say within an hour after being read?
- What about the small sweet perks and Easter Eggs, which make an app so delightful to use e.g. custom fonts, stickers, mute functionality for always buzzing chats, document sharing etc? Sure, those are the additional features you may not want to include in an MVP app but do consider them for the future product development.
- Will you allow scheduling messages in advance? (e.g. for birthdays and anniversaries with a quick reminder)
A separate note on user privacy: the users’ concerns for private data going public has gone over the roof with as much as 96% of US citizens stating they fear online hackers.
When it comes to such sensitive products as dating apps and private messengers, users security should be always the priority for businesses and startups. Here are the two essential considerations:
- Consider implementing some additional anonymous and self-destructing functionality e.g. SnapChat stores all the content for a limited amount of time (24 hours); Telegram offers Secret Chats, which are programmed to destroy all the content on both devices.
- Invest into premium encryption technologies to protect all the messages from hijacking.
Notifications and Push Messages
These small elements are essential for retaining your users and keeping them active within the app. The rule of thumb is to allow users to customize the notifications they’d like to receive.
For Android chat app development we suggest using Firebase Cloud Messaging and if you choose to create a chat app for iOS, you can use it as well. Or opt for the native Apple Push Notifications if you prefer.
A quick note on FCM (Firebase Cloud Messaging) and why you should choose it for your app:
- Google promised to gradually depreciate GCM. While they’ll continue supporting it for the installed apps, the technology will no longer be updated and patched regularly.
- FCM offers a much simpler client development environment and added functionality such as Firebase notifications, which enable sending notifications to target specific audience segments based on the in-built analytics insights.
In fact, Firebase solution can be also used for iOS and web development project. The definitive benefit is that it significantly cuts down the development costs and timeline.
To smoothly streamline all the communication, we’ve also used Sockets and Sockets Streams approach to programming, which enabled faster and more efficient communication between the app and the servers.
Media File Transmission
Apart from emojis and texts, your users would love to share other types of multimedia e.g. photos, stickers, gifs and so on. Sometimes one quick pic says it all, especially in a real-time chat app. Stickers are also among the top monetizing options for a messaging app (that’s exactly what WhatsApp been doing). Sticker Pipe is a great store for stickers, with a lucrative revenue sharing model for app publishers.
Additionally, you may wish to offer sync services with such popular cloud services like Google Drive, Evernote, and Dropbox. However, that adds up some extra development costs.
Isn’t it cool to instantly share your location on a map with a friend running around the neighborhood and searching for you?
Apple MapKit and Google Location SDK offer the native toolkit for integrated location sharing. If you plan to partner with local businesses as part of your app monetization strategy, our app developers can also include iBeacon and Eddystone sensors within the app, so that users could receive relevant messages once they step inside the venues geo-fence.
Additional Chat App Features To Consider
- VoIP Calls – a bit costly to implement, but highly valued by users. Calling via Skype or Viber is gradually replacing the traditional cell calls.
- Video chats – because that’s the next step of “coolness”.
- Audio and Video streaming – Instagram recently “borrowed” that idea from SnapChat and it turned to be a blast, so why can’t your company do the same?
- Event planning and calendar sync – to send out reminders about upcoming birthdays, parties and scheduled events. Can be an excellent bait for attracting the “business” crowd to your app.
- In-app purchases and subscription plans – you need to make some dollars after all until Facebook decides to buy you out ☺
So How Much Does It Cost to Build an App Like WhatsApp?
At this point, you should have a somewhat final understanding of what feature you’d like to develop and whether you plan to hire a development team locally or outsource the entire project.
To build a chat app with the essential features outlined above, you’ll need to assemble the following peeps:
- UX Designer
- UI Designer
- 2 iOS developers/2 Android developers
- Front-end developer
- Senior back-end developer (look for someone with relevant experience as the backend code in this case will massively impact your app’s success)
- Project manager
- QA Ninja
For a hybrid app, you may need fewer people on board, though.
The most time-consuming and costly features:
- Messaging functionality – up to 150 hours.
- File transfers and attachments – up to 100 hours.
- VoIP calls functionality – up to 200 hours.
The total project timeline depending on the scope of your requirements can vary from 1500 to 2500 hours. In money equivalent that transfers to $45.000 – $120.000 depending on the team’s hourly rates.
Want to get an exact project quote from Alty team? Don’t be a stranger and reach out through the contact form below!