NestBuddy

Social network for Ages 65+

Project goals

NestBuddy is a social network for people ages 65 and above living on the US West Coast. It helps communicate with friends, organize group activities and spend time together. The core functionally of the app is instant messaging between individuals or group of people.

Task

Our task was to improve the existing app which at that point had minimal set of functions implemented. The new release required new enhancements: general codebase improvements, new features for video support, various types of push-notifications and rich URL previews.

Challenges
The backend logic was implemented with Google FireBase, which has a number of constraints. Yet, the client refused to develop a server for the MVP. Also, we had to work with the inherited code which was not documented, and therefore, required extra time on research and bug fixing. Client insisted that the code is written in SWIFT 3 and didn’t want to update to the recent version.

Process Details

Photo and video support

Users can select and send multiple files from their gallery. Switching between screens within the app or opening another app does not abrupt the process of sending files.

The videos are uploaded from the local storage and automatically compressed in order to reduce the size and make it faster with almost no quality loss. The spinner animation indicates the loading status. Once the video is uploaded it can be played inside the messenger. If the user pauses the video and leaves the app and then comes back they can continue watching from the moment where they stopped.

One of the problems that we faced was related to iOS 11: the update used another codec format, which was not supported on Android nor previous iOS versions. Popular instant messenger get around this issue by converting formats on the server side. Since server development wasn’t an option we implemented custom camera screen that was recording videos in more common format.

We added automatic compression to efficiently use RAM when playing large videos. To improve the performance we used Rx programming and implemented cache.

Push-notification support

When users receive a new message from a chat that is not currently open they get a silent notification, by clicking on it they open the corresponding chat.

If the app is running in the background or closed users receive regular push-notifications informing them about a new message.

We added a notifications count badge that indicates the number of unread messages.

Rich link preview

When the user shares an external link in the chat or group, the message shows a rich URL preview that contains a picture, title and some text to give the recipients an idea of what they will see if they follow that link.

The Result

The client got a MVP version of the app, that features a quite rich functionality. The app lets user do almost everything they expect to see in a modern chat app. This helped our client to get a new venture round and move the project on the next development stage with an inhouse team.