Video Calls Application that implements WebRTC power for video calls.
- Language: Swift 5
- Main Architectural pattern: MVVM + Router
- Dependency manager: CocoaPods
- Network: WebRTC: GoogleWebRTC Signaling: Firebase/Firestore
- UI: Xib, Autolayout, UIStackView
- Reactive Programming: ReactiveKit + Bond
- Object JSON Mapping: Codable
- Create room by entering ID and pressing "create"
- Provide you ID to callee and make him enter ID and press "join"
- Choose source for video stream - camera or default videofile
- Choose previous room IDs you have used
- Your video goes in picture-in-picture
- Tap to hide all but caller video
- Press settings buttons for mic/sound/video on/off
- Enjoy video call
You can use WebRTCClient and SignalingClient classes to make your own video call project. To do that create Firebase project and put your GoogleService-Info.plist file into it. Don't forget to call FirebaseApp.configure() in AppDelegate
Android version https://github.com/paulzin/webrtc-demo
Web Code: https://github.com/webrtc/FirebaseRTC/blob/master/public/app.js
Web sample: https://walkie-talkie-b01d7.web.app