seifscape / RTCDemo

Peer to peer audio/video calls

Home Page:https://itunes.apple.com/us/app/instant-calls/id1189357287

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RTCDemo (Instant Calls)

Peer to peer audio/video calls application using WebRTC technology.

iTunes link: Instant calls on App Store
iTunes name: Instant Calls
License: MIT

User Interface

Project information:

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:

  1. Implement protocol SignalingChannelProtocol
  2. Implement protocol RESTServiceProtocol
  3. Initialize your classes in ServicesProvider

Targets information:

  1. (QB)RTCDemo_s uses WebRTC.framework and should be used by default

VIPER Information and implementation

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 ():

  1. ViewController output must be marked with @objc
  2. ViewOutput must be marked with @objc
  3. Presenter must be marked with @objc and inherit from NSObject
  4. In your ViewController storyboard create Object, set custom class to YourStoryClassModuleInitializer
  5. Connect ViewController with Object from step 3 (Object must have viewController outlet available)

Tests

Unit tests should be run on 64-bit Simulator (example: iPhone 8)

Presentation about WebRTC

Click here to download

About

Peer to peer audio/video calls

https://itunes.apple.com/us/app/instant-calls/id1189357287


Languages

Language:Swift 81.1%Language:Objective-C 6.9%Language:Liquid 6.9%Language:Shell 3.0%Language:Python 1.8%Language:Ruby 0.1%Language:C 0.1%