trwnh.com/unified.test.hugo/content/_dump/articles/perfect-unified-messaging-client/index.md
2024-10-05 01:27:07 -05:00

75 lines
No EOL
10 KiB
Markdown

+++
title = "What makes a unified messaging client perfect?"
summary = "A rant in which I focus on what I like and hate about messaging apps, the characteristics I would implement if I were designing the perfect unified mobile messenger, and which current offerings are the closest to perfect."
date = "2014-08-08T12:00:00-0600"
tags = []
categories = []
syndication = [
"https://medium.com/trwnh/what-makes-a-unified-messaging-client-perfect-322a83e3aa64"
]
[[resources]]
name = "featured,opengraph"
src = "messaging-apps-folder.jpg"
+++
## A brief history of (mobile) communication.
I've grown a bit frustrated sometimes with contacting people. Why can't I just send a message through a nonspecific service and get a reply? What features are missing from today's current offerings that would REALLY make things better? If I made my own app, what aspects would I include in its design?
In the 2000s, if you wanted to send a message to someone, you would either use SMS to reach them on their phone, or some IM platform if they were sitting at their computer. With the rise of mobile data and smartphones, however, the line between the two became blurred. Suddenly, we had phones that could be always-connected, just like computers. This led to the proliferation of a wide swathe of mobile messaging apps that utilize our new mobile data connections.
## Mobile messaging is extremely diverse and fragmented.
<figure>
<img src="messaging-apps-folder.jpg" alt='11 apps in a folder titled "Communication". The apps are: Hangouts, Gmail, Allo, Duo, Skype, Wire, Kik, the stock SMS Messages app, Outlook, Sid, and Riot.im.' />
<figcaption>These are the apps I use... AFTER actively trying to reduce how many apps I use.</figcaption>
</figure>
Mobile messaging apps are a dime a dozen — there are too many out there, and they all do basically the exact same things. There's not much differentiation between these apps; every app will let you send text messages to your friends, and probably picture messages, too. Many will let you send different types of media, like videos, voice recordings, or files. Some will let you make voice or video calls. Certain characteristics make each app notable, but no one app is perfect.
Among Whatsapp, Facebook Messenger, Google Hangouts, Apple iMessage, LINE, WeChat, GroupMe, Kik, Viber, Tango, Skype, KakaoTalk, and Nimbuzz (to name only a few of the most popular offerings), there's [less and less reason to use SMS](https://www.gsmaintelligence.com/research/2011/11/sms-on-the-decline-as-third-party-messaging-gains-traction/307/) for most people around the world. Despite that, SMS remains in high usage for most people (at least in the USA), but for the most part, [different methods of communication control different regions](https://techcrunch.com/2012/12/04/global-messaging-market/), and no one app has a real majority worldwide.
## Apps have different approaches to handling your contacts.
Most apps fall into one of two categories: phone-number-based or email-based, the only truly federated communication systems that are widespread. Mobile phones are a staple in communication, and if you're online, chances are you've got an email address. Most services ask for an email upon signing up, to create your account. Generally, you'll also choose a username. (This is the case for Skype and Kik.) Some services won't ask for a username, opting to use account IDs internally and connect via your name. (This is the case for Facebook Messenger and Google Hangouts.) Other services will choose to link with your mobile phone number instead. (This is the case for Whatsapp and Viber.)
These approaches cause subtle differences in the philosophy that an app has towards contacts. Either you connect with people through the phone number you already have, or you connect through an email that you already have. Or, you find people by name.
<figure>
<img src="hangouts-new-conversation.png" alt='The "new conversation" UI in Hangouts provides you with a search bar and asks you to "Enter name, email, or phone".' />
<figcaption>This is where Hangouts does something right.</figcaption>
</figure>
## All these apps have issues, but some are better than others.
The biggest problem with all these apps is that they don't intercommunicate. This means that using an app locks you into your circle of friends who also use the same app. In order to build a meaningful user base, an app has to provide a clear benefit for its use case. So, which app do you pick?
Personally, my primary communication method is Google Hangouts, for a few reasons:
1. it integrates into the Gmail account I have (and most people use Gmail, so it's easy to get others to join me),
2. it has all the necessary features (like picture messaging, group chat, voice/video calls),
3. it integrates some telephony (thanks to my Google Voice, and hopefully this integration will grow),
4. it works across many platforms (including web, iPhone, and Android, but not Blackberry, Windows Phone, or Symbian), and
5. it syncs messages across all my devices (thanks to it being cloud-based).
Other apps have other advantages. Facebook Messenger relies on the large user-base that Facebook already has worldwide, as after email and phone numbers, Facebook may be the third-most widely used communication platform. (That said, some people do not use Facebook, either due to refusal or lack of interest.) Whatsapp lowers the barrier to entry by automatically linking with a user's phone number, minimizing the interaction necessary to start using their service. iMessage is tightly integrated into Apple's ecosystem, and it requires zero thought from users since messages will automatically be converted if both people are using iDevices (plus, it has SMS as a fallback, but more on that later).
## These are the features that I would implement in my app.
In the last section, I mentioned that iMessage is seamless because it has SMS as a fallback, and this is the biggest pain point for most apps: in addition to lock-in, mobile messaging apps fail to be backwards-compatible or accessible. The reality is that, while mobile messaging apps are rising, and mobile data (or Wi-Fi) availability spreads, most people still rely on SMS and email. Those technologies aren't dead. Hangouts is the closest to "perfect" for me because it (independently) handles SMS and exists inside my Gmail, and the things it lacks are features of Google Talk and Google Voice that haven't made their way in yet. (The Android app for Facebook Messenger was my SMS app previously, due only to Chat Heads. I'd made a Facebook account only for Chat Heads, and once Facebook stopped supporting SMS, I deleted that account.) The perfect app would include some sort of federation.
A truly unified mobile messaging app would be completely channel-agnostic. It wouldn't matter if you were communication with someone by telephony, email, or data. Obviously, data would be preferred as the primary channel, but it needs fallbacks to email and SMS for people who haven't made the switch yet.
Consider iMessage's transition back to SMS for people who are offline. Google lets you do something similar with [SMS for Hangouts](https://www.google.com/settings/smsextensions) <aside>[edit: not anymore]</aside>, a setting hidden in the Google Account settings menu (accessed by clicking on your profile icon in the upper right and clicking "Account") that lets you "receive your conversation messages as SMS, when you don't use Hangouts elsewhere" (similar to Twitter's "tweet via SMS" option), but this only applies to you. Google Voice lets you send SMS, but it's not fully integrated into Hangouts at the time of this writing. SMS fallback when offline should go both ways.
Email fallback is something that is mostly overlooked. Facebook messages can be optionally sent as email notifications, and Hangouts shows up in Gmail as "Chats", but most services tend to avoid this. Hop, an email app for iOS (formerly called Ping), [turns email inboxes into a chat analogy](https://gethop.com/). This would be useful for a chat app, which could communicate with people who haven't signed up yet and don't have accounts. It would be possible for Hangouts to send a message as an email to someone not using Hangouts, and the other user could reply to that email to have it show up in Hangouts, much like Google Voice's SMS-to-email feature works.
Imagine the following use-case diagram: A message is sent to Friend. If Friend is online, the app sends a push notification. If Friend isn't online, the app sends an email notification that Friend can reply to, and/or an SMS that Friend can reply to. A picture message would have the picture attached to an email, and/or utilize MMS. Group messages would be sent to all involved emails, and/or create a group MMS. The app would make no distinction between friends that haven't signed up and friends that have. When starting a conversation with friends that haven't signed up, messages would go straight to the specified email or phone number, unless matched to a contact that has signed up.
For voice calls, the app would have the option to call either contacts (over data) or phone numbers (still over data, but your friend is connected through telephony). Video calls would obviously have to be data-only, and would require your friend to use the app, at least until federated video chat becomes possible.
## A final summary...
A perfect app would communicate with friends through its service, through email, or through SMS. For friends that don't use the service, emails or phone numbers are used. Attachments would be handled with email attachments or MMS attachments. For friends that use the service, messages are pushed to the client if online, and fallback to SMS/email if not. These fallbacks can be optionally disabled/enabled by your friend.
Of the current apps, Google Hangouts + Google Voice would be the closest, once it integrates VoIP, full SMS integration, adds in better fallback options, and handles federation or open access through APIs. Chat Heads would be cool, but Google probably won't add them (which is why open APIs are important, because [someone could just write an app with floating bubbles like Tweet Balloon](https://forum.xda-developers.com/showthread.php?t=2751745)).