SkyWay iOS SDK の概要
SkyWay iOS SDK (以下、iOS SDK )は iOS デバイス用のアプリケーションから SkyWay を利用するための SDK です。 iOS のネイティブなアプリケーションに SkyWay を組み込むことで、デバイス同士やブラウザとのリアルタイム通信を実現できます。
対応環境
項目 | iOS SDKの対応状況 |
---|---|
OS | iOS 12+, iPadOS13+ |
CPUアーキテクチャ | arm64, x86_64※ |
IDE | Xcode14+ |
※iPhone Simulator 環境でのビルドも対応はしていますが、動作未保証です。
2025年4月以降、対応OSはiOS/iPadOS14以上となります。
12・13をサポートしているお客様は、お手数ですが最低保証バージョンの引き上げをお願いいたします。
アプリケーション開発言語
Swift
ライブラリの仕様
SkyWay を利用する上で理解する必要のある基本的な仕様について説明します。
Room
通話を行うグループの単位であり、ユーザーは共通の Room に参加したユーザー同士で通話を行います。
P2P Room と SFU Room の 2 種類の Room があり、どちらかを選択して利用できます。
Roomの使い分けは以下の通りです。
- P2P Room は少人数向け
- 上限人数に制限はありませんが、ユーザーが快適に通話できる人数は 4 人までです
- SFU Room は多人数向け
- SFU サーバーを経由してメディア通信を行います
Member
Room に参加しているユーザーのことを Member と呼びます。
Stream
Room 上で送受信できるメディアのことを Stream といいます。以下の 3 種類の Stream を利用できます。
- AudioStream
- ユーザーのマイク音声など
- VideoStream
- ユーザーのカメラ映像など
- DataStream
- 任意のメッセージ
- SFU-Room では利用できません
Publish
Member が Stream を Room に公開することを Publish といいます。
Stream を Publish すると Room 上に Stream に対応する Publication というリソースが作成されます。
Subscribe
Member が Room 上の Publication を受信することを Subscribe といいます。
Subscribe をすると Room 上に Subscription というリソースが作成されます。
Publication を Subscribe した Member は Subscription を通じて Stream にアクセスし映像や音声を受信できます。
SkyWay Auth Token
SkyWay Auth Token は、SkyWay を利用するために必要な JWT(JSON Web Token)形式のトークンです。
ユーザー毎に権限を細かく設定することでき、例えば Room ごとの入室を特定ユーザーに制限する、といったことができます。
SkyWay Auth Token を利用するためには、これを払い出すアプリケーションサーバーを構築する必要があります。SkyWay SDK を利用したクライアントアプリは、アプリケーションサーバーから SkyWay Auth Token を取得し、これを用いて各種 SkyWay の機能を利用します。
なお、サーバーを構築せずにフロントエンドで SkyWay Auth Token を生成した場合、シークレットキーをエンドユーザーが取得できるため、権限の制限が機能せず注意する必要があります。
SDK のダウンロード
Swift Package Manager と CocoaPods 、 GitHub のリリースで配布を行なっています。
Swift Package Manager
以下のリポジトリで公開しています。
CocoaPods
Pod Specs は独自に管理しています。
CocoaPodsがインストールされている環境でリポジトリを追加してください
$ pod repo add skyway-ios-sdk-specs https://github.com/skyway/skyway-ios-sdk-specs.git $ pod repo add skyway-ios-webrtc-specs https://github.com/skyway/skyway-ios-webrtc-specs.git $ pod repo update
Podfile
に以下のソースを追加してください。
source 'https://github.com/skyway/skyway-ios-sdk-specs.git' source 'https://github.com/skyway/skyway-ios-webrtc-specs.git' source 'https://github.com/CocoaPods/Specs.git'
インストールするライブラリを以下のように記述します。
pod 'SkyWayRoom'
Podfile
の全体は以下のようになります。
# Uncomment the next line to define a global platform for your project # platform :ios, '9.0' source 'https://github.com/skyway/skyway-ios-sdk-specs.git' source 'https://github.com/skyway/skyway-ios-webrtc-specs.git' source 'https://github.com/CocoaPods/Specs.git' target 'CocoaPodSample' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for CocoaPodSample pod 'SkyWayRoom' end
pod install
でインストールします。
$ pod install
GitHub のリリース
以下のリポジトリでリリースノートと xcframework を公開しています。
ダウンロード後、 zip ファイルを解凍し、 xcframework をプロジェクトに配置してください。
旧iOS SDK(SkyWay.framework)との互換性と共存
互換性はありません。
1つのアプリで新旧 SDK を共存(リンク)することは v1.2.1 から可能です。