<< Portfolio

KingsChat

KingsChat is a fast and simple way to connect, keep in contact and share timeline stories with people from one community around the globe. The application is one of many made for Christ Embassy, operating globally with HQ in Nigeria.
Partnership 5 years 8 months

Project Overview

The client decided to create a social media platform dedicated to Christian audience to help connect people from the community, but also the ones who just want to express themselves in a family friendly social space. The goal was to create a set of mobile applications along with a web portal that should consist of many features revolving around communication and sharing experience using popular solutions as well as introducing own, non-standard ones.

Challenges & Solutions

Fast text chat, which also works during large events in which many people participate and where access to the Internet can be significantly limited.
To create a standard online messaging system we utilized websockets and combined them with a protobuf method of serializing data which resulted in fast and low data usage chats. To enable communication in places where access to the Internet is limited, we decided to use peer-to-peer mesh networks between nearby devices using existing connectivity technologies such as Bluetooth and WiFi. These networks are used to share text messages even when there is no phone service or Internet connection. It improves range and deliverability.
Live video streaming, both from the application and from the studio.
As a part of live video transmission, we separated two sources; live-streaming from the phone and video broadcasting from an external source. For broadcasting from an external source, we use HLS, which stands for HTTP Live Streaming. To put it succinctly, HLS is a media streaming protocol for delivering visual and audio media to viewers over the Internet. The HLS streaming protocol chops up MP4 video content into short, 10-second chunks. HTTP then delivers these short clips to viewers. The only thing a user has to do is to paste the link to the source of the stream in the web version of the application. Thanks to this solution, we are able to assemble the transmission in the studio, and then make it available to the users, just like on tv.
An opportunity to have a voice connection with up to 100 users.
Creating a conference app that handles up to 100 users in one room was, without a doubt, a big challenge. Fortunately, we were armed with the right tools. For handling users' connections, we used Elixirs's amazing, lightweight processes. This allowed us to have lots of simultaneous users with good performance. To handle voice connection, we used an open source tool called Janus. It is a WebRTC gateway, which allows voice (and even video!) connection between lots of users.

Technologies

Elixir
Kotlin
RxJava
Swift
Dagger
ExoPlayer
Protocol Buffers

Graphic designs