SkyWay iOS SDK の概要

SkyWay iOS SDK (以下、iOS SDK )は iOS デバイス用のアプリケーションから SkyWay を利用するための SDK です。 iOS のネイティブなアプリケーションに SkyWay を組み込むことで、デバイス同士やブラウザとのリアルタイム通信を実現できます。

基本概念/基本仕様

他プラットフォームの SDK と同じです。

JavaScript SDK の基本仕様/詳細な仕様をご確認ください。

対応環境

項目iOS SDKの対応状況
OSiOS 12+, iPadOS13+
CPUアーキテクチャarm64, x86_64※
IDEXcode14+

※iPhone Simulator 環境でのビルドも対応はしていますが、動作未保証です。

アプリケーション開発言語

Swift

配布ライブラリ

iOS SDK は xcframework 形式でいくつかのライブラリで構成されており、ご利用いただく場合は以下の3つのケースからお選びください。

  • Room ライブラリ
  • Core ライブラリ
  • Core + プラグインライブラリ

Room

  • SkyWay の全機能を利用できるライブラリ
    • P2P Room と SFU Room の 2 種類の Room があり、どちらかを選択して利用できます
    • P2P Room は少人数向け
      • 上限人数に制限はありませんが、ユーザーが快適に通話できる人数は 4 人までです
    • SFU Room は多人数向け
      • SFU サーバーを経由してメディア通信を行います
  • Core と SFU Bot を組み合わせたラッパーライブラリです

Core

  • SkyWay の各種ライブラリについて詳細な制御を行いたい場合に利用するライブラリ
    • プラグインによる機能拡張が可能
  • 現在存在するプラグインは SFU Bot のみ
    • プラグインを利用しない場合は P2P 通信のみ可能

SFU Bot

  • Core ライブラリで SFU Bot を利用するためのプラグインライブラリ

Room ライブラリは SkyWay の全機能を利用できますが、 Core ライブラリと SFU Bot ライブラリを用いることでさらに細かな制御を行うことができます。例えば少人数の場合は P2P でメディア通信を行い、一定以上の人数が入室した際に自動的に SFU の利用に切り替える、などといったユースケースに対応できます。

しかし、多くのユースケースでは Room で簡単に実装できるため、まずは Room ライブラリを検討することをお勧めします。

旧iOS SDK(SkyWay.framework)との互換性と共存

互換性はありません。

1つのアプリで新旧 SDK を共存(リンク)することは v1.2.1 から可能です。

SDK のダウンロード

Swift Package Manager と CocoaPods で配布を行なっています。

Swift Package Manager

以下のリポジトリで公開しています。

Room

Core

SFU Bot

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' # Roomを使う場合 pod 'SkyWayCore' # Coreを使う場合 pod 'SkyWaySFUBot' # Coreと一緒にSFU機能も利用する場合

Room を利用する場合は以下のように記述します。

# 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