Peer to peer audio/video calls application using WebRTC technology.
iTunes link: Instant calls on App Store
iTunes name: Instant Calls
License: MIT
Swift version: 4.2
Signaling channel: QuickBlox chat API, SendBirdSDK chat API
REST API provider: QuickBlox REST API
REST API provides:
User login and registration
Retrieving users in a room
Push Notifications
How to add your custom signalling channel or REST API provider:
- Implement protocol SignalingChannelProtocol
- Implement protocol RESTServiceProtocol
- Initialize your classes in ServicesProvider
Targets information:
- (QB)RTCDemo_s uses WebRTC.framework and should be used by default
I applied and modified architecture pattern VIPER from Rambler Digital Solutions
Adding new VIPER module:
gem install generamba
cd `folder with Rambafile`
generamba gen VideoCallStory swifty_viper
VIPER integration tips:
Projects uses generamba swifty_viper
template with some modifications
generamba gen VideoCallStory rviper_controller
To correctly route one module to another (performSegue) we should modify the template ():
- ViewController output must be marked with
@objc
- ViewOutput must be marked with
@objc
- Presenter must be marked with
@objc
and inherit from NSObject - In your ViewController storyboard create
Object
, set custom class toYourStoryClassModuleInitializer
- Connect ViewController with
Object
from step 3 (Object
must have viewController outlet available)
Unit tests should be run on 64-bit Simulator (example: iPhone 8)