Real Time Collaboration API for iOS Apps - ios

I need a way to share a JSON data between 2 users in iOS and Swift. Does anyone have any suggestions for a way to do this? Maybe an official Apple or Swift API?
Requirements:
Easy to integrate with swift
Not hosted on a personal server
Thanks.

Apple offer the GroupActivities framework for that. During a Facetime call you can send custom data over the same connection for whiteboard apps with realtime collaboration. This year at WWDC 2022 they added a UDP tunnel for faster (but not guaranteed) data transfers and they also increased the packet size to 256KB. Here are some resources:
Videos:
WWDC21 session 10187: Build custom experiences with
GroupActivities
WWDC22: What's new in SharePlay
Sample code:
Drawing Content in a Group Session
Invite your friends to draw on a shared canvas while on a FaceTime call.

Related

Video call and chat using WebRTC and Pubnub in native iOS Swift

I'm working on a doctor-patient appointment app on native iOS Swift project. Here I want to implement a live video call with chat using WebRTC and PubNub signaling server. I'm totally new to it. I don't know how to implement this. I have seen some of the Objective-C codes but still I didn't understand. Please help if any of you implement the same in swift.
Highly recommend you reach out to a service such as Vonage (https://www.vonage.com) who can provide HIPAA compliant WebRTC video service for you.
Once you have a set of keys on Vonage, you can use PubNub to move the video session details around the channel in question.
Traditionally I use a JSON object model that looks like this:
channel: "UUID of medical session"
messageID: "MessageID on your platform"
messageType: "videoInvite"
sender: "Hilaj"
sessionDetails: "session JWT and/or session token"
timestamp: "1597347054"
This means you can send text based messages as well as video invites in the same channel and write the event to logs.
I have implemented this in Swift (and previously in Objective C) but it is completely proprietary.
You are going to have to download the Google WebRTC framework.
Taking a quick look at PubNub, it looks like it just does signalling. You are still going to need an actual WebRTC server (eg, Janus). There are others and I'm not really sure which ones support PubNub.

Video Streaming and Broadcasting using WebRTC

I am very new to Real Time Protocols and I had some questions about how WebRTC works and how I can implement it. I am trying to create a one to many livestream like facebook or periscope, where one user broadcasts and other users join and stream the video. I am using Swift from my client end.
My questions are:
How do I broadcast a video using WebRTC
Is there an SDK for WebRTC in Swift/iOS
I know the questions are very vague but a guidance to the right direction would be great because I am not sure where to start
You will need to use backend servers for that.
If you plan on broadcasting to multiple users directly from your mobile app then stop...
You need to connect your mobile app to a backend media server which then can be used to broadcast the video to a larger audience.
There are several commercial and open source alternatives that enable you to do that. I'd check Red5Pro, Wowza, SwitchRTC, Jitsi, Janus and Kurento for this task.
For the client side, look at react-native-webrtc
You can find more tools for WebRTC developers here.
Regarding your question (2), there's also a SDK for iOS here and a neat get-started-page here (although 2.5ys old, but I haven't found anything better so far yet)

Connecting 2 IOS Apps Through a Video Call

I've been developing an app and it seems I've ran into a brick wall. I'm trying to create a video connection between two apps (similar to how the uber driver app connects with the uber rider app-etc.) Basically I need to be able to allow one app to create a 1:1 video call to another app. Just a nod in the right direction would be greatly appreciated!
I think the most common and reliable approach for this is to use some WebRTC based solution. There are several SDK that provide such an experience. I've used Sinch, Twilio and Icelink
Some of them requires you to purchase a license.

IOS building real time application

Well i am new to IOS development and want to create a realtime application. In my app i want to update data of tableview cell with real time information like we do with Google Drive shared sheet.
I am not using google drive but its an example. In my app i have a tableview which cell should be updated by realtime data. I have thousands of user groups and any member of group with access to modify can edit that data. So i need to reflect real time change to all other users of particular group.
The data can be anything like image, any formula or anything.
Well for that i have googled and found two options but i am confused which one should i go with.
PubNub library
NSTimer
Well i am not sure which one will be best suited for me. I have tried to create a demo app with PubNub but with heard luck i can't do more.
So can so please suggest me which should i choose or is there any other alternative. I am using Xcode 7.3 with swift 2.3
Thanx in advance.
PubNub is not based on Node, however we have many SDKs for over 70+ different languages/platforms, like Node and Swift. The network is a hosted realtime, data stream network (DSN) that the SDKs connect to allowing your app to send and receive messages in realtime around the world in < 1/4 second to 1 or millions of clients.
For more on this, read How PubNub Works?
You can use PubNub for free for up to 100 daily active devices and up to 1 million messages per month (plenty for a demo app).
You would use the PubNub Swift SDK to subscribe to publish and subscribe to some channel to update your app.
Please check out our Swift SDK docs to get started.

Audio Chat + Data Stream Library for iOS

I want to build an iOS app that streams audio and some additional custom data between two users real-time. This is possible using GameKit if people are on the same network, but I haven't been able to find an SDK that can do this across the world.
Does anyone know if there is an existing service that does this?
If not, what services do you recommend for doing these two things (streaming audio and streaming data) separately?
Thanks.
WebRTC (www.webrtc.org/) has support for iOS (for audio streams, video promised later). But anyway in order to support communication for peers behind NATs - you will need your own sans, stun servers...
After looking into it, it seems that QuickBlox is able to do everything I need.

Resources