Today, it is easier than ever to get involved in real-time communications, using WebRTC. For those considering investing in a mobile strategy, the technology ecosystem has never been more ripe for rapidly integrating WebRTC into your application, or even starting a project afresh. Using existing build tools like Cocoapods to get started quickly with the OpenTok iOS SDK, and the new CallKit framework introduced in iOS 10, now is the best time to jump in and start building.
Cocoapods get you started
First, a history lesson. Skip ahead to the code snippets if you’re more of a ‘tl;dr’ person.
Since 2012, TokBox has powered real-time communications for mobile apps on iOS and Android. Early versions of both the iOS and Android SDKs were distributed via a public GitHub repository for programmatic access. History can sometimes offer comical lessons in tool misuse; git is a poor choice for managing large binary files. With time and, more importantly, feedback from our partner developers, we were able to evolve our distribution strategy.
For our first improvement, mobile SDK distributions were migrated over to AWS S3. This offers a modest efficiency by limiting the download size to just what a developer needs – a current version of the SDK – rather than every version released, ever.
Downloading a framework and including it in your project is certainly not a novel concept, and yet the process of getting started can still be somewhat daunting. Even after downloading the framework, there are many dependencies in iOS that needed to be added explicitly to a new project, before LLVM modules and Automatic Linking were both released in Xcode 5. Still, all of this could be improved with a proper dependency management tool.
To that end, in 2015 TokBox started publishing our iOS releases to Cocoapods, and migrated our own sample applications to use this tool for dependency management. Today, developers can get started quickly on a new iOS project with a few simple steps:
# Install cocoapods in the terminal: sudo gem install cocoapods # Create a podfile in the root directory of your Xcode project: pod init # Add OpenTok to your Podfile: echo "pod 'OpenTok'" > Podfile # Fetch OpenTok and any dependencies: pod install
For more information on installing and using Cocoapods for your own projects, visit the documentation at https://cocoapods.org.
New in iOS 10: CallKit enables a seamless VoIP experience
Earlier this month, Apple added an interesting library alongside the release of iOS 10: CallKit. CallKit enables any app to ring the device as if it were a regular phone call, and allows for customization of the lockscreen while ringing. Previously, such functionality was privileged only to Apple’s own apps, Phone and FaceTime.
This new library solves a previously intractable problem: before CallKit became available, VoIP apps on iOS were not treated as equals to Apple’s own communications apps – that is, calls had to be placed and received from within the app, and only while the app was unlocked and running in the foreground. In this situation, no user could “receive a call” with the same urgency of interruption to which iOS users are accustomed, as with traditional incoming phone calls and FaceTime.
With this new addition to the large family of libraries available to iOS developers, apps can more fully integrate traditional phone experiences into a video chat and VoIP apps. Expect to see an increasing number of existing apps add this functionality in incremental releases. It’s already happening now.
To editorialize, allowing native support for traditional phone-like features in iOS is a bold move from our friends in Cupertino. Alongside the PushKit VoIP notifications functionality released two years ago, we interpret this new addition as a clear signal about the future of mobile communications. Anyone with an Apple developer account can make an iOS app nearly indistinguishable from the incumbent communications giants like Hangouts, Skype, FaceBook Messenger, WhatsApp, FaceTime, and of course, the old-and-trusted Phone App. While I wouldn’t go as far as others have in claiming these libraries herald of the death of PSTN, the direction of the tide is indisputable.
So, with relative ease of getting started and ever increasing velocity of the market, why not hop on board? Where could you see real-time communications changing an industry you know about? Leave a note in the comments, let us know what you think.