Spontaneous Connections
We're all so absorbed, hunching over our screens, walking past each other.
When you see a double rainbow, instead of taking a selfie and sending it to your friends far away, why not share the moment of awe with those right around you? Wouldn't it be nice if you could just yell "Double rainbow!" and make everyone look up?
Yell lets you do just that, without screaming like a weirdo.
Overview
Yell is a "walkie-textie": an iOS app that lets you chat with nearby users. It's minimal, anonymous, and easy to use.
There's no user registration, passwords, friend lists, stickers... The simplicity and anonymity echoes the old Internet when everyone had an alias and nobody is mining all of your data, and we believe this simplicity encourages trust.
Goal
To enable spontaneous conversations that lead to real-life connections with those around you.
Yell isn't just another chat app vying for your attention (and personal information). It's a virtual interface for real meet-ups.
Concept
The app lets you broadcast ("yell") messages to nearby users. Yell is extremely simple to set up and use, and serve up the content in just the right way (if you have 1000 nearby users, you don't want a flood of notifications).
Design & Protocycling
When I founded the project, I wanted to test the idea and see results as quickly as possible. Instead of the usually extensive research and design up front, this project adopts the Protocycling model: making fast, functional prototypes and getting feedback from users to continuously improve.
1-step setup
All you need to do is choose a nickname, and give the app permission to use notifications and your location (so we know who's nearby). That's it! There's no step 2, no interfaces to navigate, and no need for a tutorial.
Minimal Interface
The interface is clean and intuitive, without any unnecessary buttons and options. It works great with any screen size, and for visually impaired users due to its high-contrast design.
HTTP Networking
To create the backend framework that supports the exchange of messages, we used open-source libraries such as Alamofire. This allowed instances of the app to communicate with our server in JSON.
Challenges
iOS Location Limitations
iOS apps rely on the Core Location service to acquire information regarding where the user is. One central challenge for Yell was to update the user's location without draining the battery or making the user feel like they're being tracked.
Yell listens to the Core Location service and it gets a function call when the location of the iPhone changes significantly (above a distance threshold specified by us), and this information is sent to our server to keep the latest location of a given user. To protect users' privacy, none of this information is device- or user-associated beyond the nickname they picked.
Not boring, not overwhelming
When a user joins the service, we want to engage them in conversations right away, so the range of communication must be large enough to include some people. But at the same time, we don't want users to get overwhelmed by irrelevant messages because the range is too large and includes too many active users. For this challenge, we designed an adaptive range algorithm:
Beyond the minimum range, which is smaller than a building, the algorithm changes each user's effective range based on how many other users they can reach. In times of few users (initial low adoption rate), the user may see messages from miles away.
Rejection
Upon submission of the first version of our app to the iOS App Store, we received a message: our app was rejected. "Your app randomly connects users for one-to-one text, audio or video chats, which is considered 'Chat Roulette' and is not appropriate for the App Store."
While we were getting some positive initial feedback from friends who installed the app on their phones, we did not get the chance for widespread experimentation to really see how this concept would work. The rejection was based not on an implementation flaw, but on the basic concept of the app itself. We looked into potential remedies but concluded that complying to Apple guidelines would compromise the core identity of the app. The project was terminated shortly after our MVP v1.0 app was created, so I can focus our efforts on new ideas with what we learned from this project.
Verify your assumptions
The efforts and hopes that went into the project made the total rejection of the app due to a policy we weren't aware of was certainly a sobering lesson. This taught us that creating a new product isn't just about researching the market trends, user needs, and engineering plausibility. Background research on a project should include rules and regulations, among many other factors often unknown to newcomers like us.
This learning carried through to my other projects, professional and personal, and gave me the foresight to question whether certain machine learning algorithms would work in the real world given different privacy laws and expectations around the world. For instance, the EU's GDPR rules must be considered if the product aims to leverage data acquired in the EU market.
Why This Matters
In my streak of ideas and prototypes, Yell is among the most simple. This project was by far the most efficiently designed, clearly scoped, and quickly implemented one yet. The rapid porto-cycling workflow really started to shine and show its value, and became a handy tool I'm sure to use again in the future.
Like many of my other initiatives, Yell is another small but clear and coherent step towards connecting people and breaking boundaries, a vision I have and will always pursue.