In a recent press release we talked about Train-With, an Online Fitness Training Platform we are developing. Following with that, we want to share our experience and this technical review of the CPaaS (Communications Platform as a Service) we used for that project,


For this fitness iOS application,  currently public in the Apple Store, we decided to use a CPaaS provider to speed-up development and come up with a robust production ready application. Generally speaking, if you are not a massive communication app, we would recommend using a CPaaS to speed up time to market.

Deciding which CPaaS provider to use can be complex and there are many considerations. In this case, we decided to use because of good feedback from the developers and because, overall, had all the required features for the project:

  1. Mobile, Web and desktop compatibility
  2. Voice and video one-to-one, one-to-many and broadcasting

Rachel Aram, the founder of Train-With, did extensive research on broadcasting solutions prior to contacting our team and was very impressed with the quality of video and the strength of the technical support they offered to us. Our team has definitely found the team to be very supportive of our work and answering any questions we had.

THE CHERRY ON THE CAKE has excellent broadcasting quality in mobile-to-mobile scenarios and because, technically, Train-With is a broadcasting mobile to mobile app, was a great choice.

The no upfront cost for a generous 10,000 minutes per month also helped our decision. Being able to test and develop an application to production without any additional charge is important for startups in early stages.


It was the first time our developers used the AgoraRtcEngine and AgoraSignalKit iOS libraries.

Real Time Broadcasting

For this functionality, we used the AgoraRtcEngine and here is where really shines.

There are a good number of error codes to detect problems, a smooth broadcasting of video and audio, recording options and having it as a Cocoapod library all makes this library easy to use and well suited for production usage.

Real Time Messaging

The chat works great and offers a basic but effective messaging model of string messages and user Id. To add an additional field in the message, such as location of the user, we concatenated the different fields of interest in a single string. We would like to see more functionalities here and additional integration of the library with the A/V communication API.

Using objective-C

Both libraries are written in Objective-C. While we prefer Swift for code clarity and maintenance reasons, we were able to do everything we needed with the Objective-C libraries using a bridge header. Hopefully we will see Cocoapods support for AgoraSignalKit in the future.


Overall, has a generous list of cross platform libraries for the Web and iOS platforms that we’re focused on with Train-With, and worked without any issues. In production we used the iOS platform libraries and we would definitely recommend both for prototype and production ready applications. It works smoothly in Web and it is a very strong candidate for handling mobile to mobile video.


Recent Blog Posts