Recently, online dating has caused quite a lot of controversy. For example, how appropriate or smart is it, really? But today you can choose not only a person's gender and age, but also the scope of their activities, interests, and hobbies. This, of course, increases the chances that this kind of acquaintance will not only be pleasant but also mutually beneficial.
Now we have the opportunity not only to communicate with an interesting person but also to learn something new from them. And we’re happy to tell you about the app that makes it all real - CashChat.
CashChat is a mobile app where users can meet other people based on their location and, at the same time, develop skills through their communication with them.
This app determines the user's current location, for example, the city or district within the city, and in conjuncture with the preference settings, filter all the people with whom the user wants to communicate in the future. With this filter, you can set what topics you would like to cover including topics like music, movies, or business. A distinctive feature of CashChat is the ability to choose the radius of the location of people with whom you would like to communicate. It can be as small as within several kilometers, or as large as the entire country, and beyond.
Initially, the plan was to make it so that people who don’t have a subscription can only communicate with people within a 100-kilometer radius. For subscribers, this range was unlimited and would make it possible to communicate with people from anywhere in the world. However, in the final version, we decided to make the distance unlimited for both subscribers and those without a subscription.
CashChat is not only useful because it allows you to meet people, like, for example, Tinder. At the same time, thanks to this application, it's possible to constantly learn something new, because when creating an account, each user indicates in what area they are proficient and what skills they have. When they get in contact with other people, users can share their experiences, help learn something new, or simply expand their horizons.
Each user has the opportunity to set the cost of chat messages for in-game currency. Each user has a certain number of coins and can make it so that a message to them will cost, for example, 10 coins. And while the message is written, the coins are transferred from the user to the addressee and converted into another currency, called “cash”, where 1 cash is equivalent to 10 coins. And the best part here is that this cash can then be withdrawn to a PayPal account and used in real life.
As a result, thanks to CashChat, the user has a great opportunity to earn a little money from their knowledge and skillset. At the same time, it makes sense that the larger the user's social circle is, the higher their chances of earning good cash.
From the user's side, everything works quite simply. The person indicates his name, gender, date of birth, interests, and skills in which the person considers themself proficient, and after filling in the profile information, it's immediately possible to start communicating with other users.
The application has a user feed called “Discovery” where, initially, random profiles are selected by default, not according to the parameters the user selects. Then, to find more suitable people, users can use the provided filters. For example, you can find men between the ages of 25 and 30 who are interested in film directing, within a radius of 100 kilometers from the user.
In the chats themselves, you can send various media files both from your phone or record them through the app itself. This feature is complemented by the fact that all sent media can be made to disappear, i.e. make it so that after one viewing, the photo or video is no longer available for re-viewing.
There is also a locked media feature. The essence of this feature is that when you send a photo or a video, you can make it a paid view. For example, a user sends a photo to another user who has this photo displayed with a heavily blurred preview so that the original image cannot be seen and to get acquainted with the content of this photo, you need to pay a certain amount, for example, 100 coins.
The simplest example: Imagine that you are a professional photographer and you were asked to show how to edit photos in a cool way. You are willing to share your experience, but you don't want to do it for free. In this case, you send your files blocked, i.e. the person needs to pay for these files to learn something from you. This way you earn cash by sharing your files, and other users who have paid for your files get an invaluable experience.
During the work on the project, a fairly large number of people managed to work hard, namely:
Application development can be divided into three periods:
Essentially, the entire process, including improvements, took about a year and a half.
First up, there was a lot of work done on the project with Core Data. We used it to be able to permanently save all the information on the device. This is useful because this way users have the opportunity to view everything they need without the Internet: you can go to chats, view messages and media files inside the application, even when offline.
Another important tool in working on CashChat was Twilio, which is the basis for creating great chats. Of course, we encountered some difficulties in working on our chat. For example, Twilio has a limit of 30 update operations per second per channel. This means that a person who has a large number of contacts in the app may experience chat failures. To solve this problem, we decided to use Google's Firebase. By the way, Firebase is most often used to track changes in user data and display only up-to-date information in the chat. For example, if the user initially had messages worth 10 coins, and after some time he upped the cost to 50 coins, the second user must know about this and see this information in the chat.
We also used AppsFlyer mainly to work with deep links. The advantage of working with this particular service for us is that it can generate new, unique links offline. That is, even in the absence of the internet, the application can generate a referral link for the user.
While working on CashChat, our team encountered small but very important challenges.
During the first release of the application, we encountered a challenge in working with Core Data, and before the release, this problem was quite difficult to track. It consisted of the fact that you could have users in the contact list, but not in the chat list. As it turned out, the whole problem was that it was necessary to configure the search parameters and restrictions in Core Data so that the requested information was displayed correctly.
For example, we made 10 requests, and Core Data gives us 10 results. But sometimes it also happened that we made 10 requests, and Core Data gave 8 results and 2 duplicated ones, that is, those that we already had. All this is fixed easily, with the help of settings, but it was important to understand exactly what the problem was in the first place.
Another challenge was working with the changing state of the mobile network. The difficulty was that Twilio itself works fine, but it also happens that the status of establishing synchronization may hang, which means that the user can not do anything in the chat, neither sending nor receiving. And for everything to work again, the user would have to restart the application on their own. We obviously didn’t want this to be the case.
To get around it, we decided to register the logic manually inside the application...in case Wi-Fi goes missing or synchronization is not set. When this happens, the application will restart the Twilio Chat Client, without the user having to force the process. This is one of the many things we wrote on our own to ensure that the application works without failures and inconveniences for CashChat users.
Besides, for the convenience of using the chat, we added a small measure that would indicate if the application is ready to work. This indicator is available for different messages. For example, if the Internet connection is not very good, the indicator writes "Connecting” or "Waiting for Connection".
The CashChat app has in-game purchases. Users can buy coins needed to communicate with other users, as well as to unlock media files.
You can also subscribe to the app for either a month or a year.
Any communication can be made more diverse and useful, and thanks to CashChat, it's much easier to accomplish. Our team has put a lot of effort into making sure that now you have the opportunity to excitingly learn something new, develop your skills, and share your experiences with people from anywhere in the world.
A simple and, at the same time, user-friendly interface allows you to easily join the conversation, and the conditions of interaction with other users add some more excitement to the communication process.
Get weekly updates on the newest design stories, case studies and tips right in your mailbox.