Sora iOS SDK 2020.1 リリース

SUZUKI Tetsuya
shiguredo
Published in
4 min readJan 20, 2020

Sora iOS SDK 2020.1 をリリースしました。

バージョン表記について

前回のバージョンは 2.6.0 でしたが、今回よりバージョン表記を「リリース年.リリース回数」に変更しました。このバージョン表記に関しては YYYY.<リリース回数> というバージョン番号の採用 もご覧ください。

WebRTC SFU Sora は常に最新版を使うことが前提の製品であり、また iOS とその開発環境である Xcode/Swift はダウングレードと下位互換性の保証が難しいプラットフォームであり、その特性上 Sora iOS SDK も常に最新版を使うことが前提となります。以上の理由から、ユーザーは過去のバージョンを気にかける必要がありません。一応変更内容の影響範囲によってバージョンを決めてきましたが、結局大した意義はありませんでした。

開発者とユーザーの双方共にわりと見落としがちだったのがメンテナンスバージョンで、例えば 1.2.3 と 1.2.4 では重要な変更がなさそうに見えますし、アップデートの緊急性も薄そうに見えてしまいます。しかし大抵は重要なバグ修正が含まれていて、 (Sora iOS SDK では) 数値と重要性にギャップがあります。それにマイナーバージョンにしろメジャーバージョンにしろ、とにかく最新版を使うべきなので、つまるところ Sora iOS SDK ではセマンティック・バージョニングがナンセンスであります。 “2020.1” とすれば、全員が全員「アップデートしなきゃ!」って意識になるのではないでしょうか。あとバージョン考えなくていいので楽です。

主な変更点

  • WebRTC M79 に対応しました。
  • Carthage のサポートを終了し、 CocoaPods のみにしました。
  • WebSocket ライブラリを SocketRocket から Starscream に変更しました。
  • 新しいロール sendonly/recvonly/sendrecv を追加しました。旧ロールは非推奨になりました。
  • 一部のイベントハンドラの名前を短縮化&見直しました。

Carthage の廃止について

Sora iOS SDK では当初より非中央集権型でシンプルな Carthage を好んで利用してきましたが(当時は CocoaPods の Swift 対応が不十分だったのも理由の一つです)、過去の運用を振り返ってみると、思うほど保守は楽にならなかったと感じています。 Sora iOS SDK 固有のビルド事情により Carthage にしろ CocoaPods にしろ諸々調整しなければならなかったのですが、カスタマイズが込み入ってくると面倒臭さはどちらも大して変わりませんね。 Carthage はユーザーの負担が大きいので、必然的にサンプルコードの保守や補足事項をドキュメントに書く労力が増えてしまいました。現在は CocoaPods の Swift 対応も進んだので、今回より Carthage のサポートを終了して CocoaPods のみをサポートすることにしました。ご了承ください。

ロールについて

Sora の仕様変更に伴い、ロールに sendonly/recvonly/sendrecv を追加しました。旧ロールの publisher/subscriber/group/groupSub は非推奨になり、マルチストリームは明示的に指定する仕様になりました。現時点では便宜上 publisher/subscriber の表現は残してありますが、いずれすべて廃止する予定です。

以上です。

--

--