なぜ移行しないといけないか?
- 2018年3月には提供終了するため
- トライアル版の時に使っていたSDKはCommunityEditionでは動かないため
移行時の注意点
- 利用上限と価格
- アプリ-Webな通信をしている場合、言わずもがな両サイドのSDKとAPIKeyが接続時には変更されている必要がある
- MultiPartyのライブラリはサポート終了、新SDKのRoomを使いましょう
移行方法・注意点
1. ライブラリの差し替え
// Podfile
- pod 'SkyWay-iOS-SDK'
+ pod 'SkyWay'
2. ソース変更
あまり変更点ないので、結構すぐ終わりました。
- import moduleの変更
-
いくつかdeprecatedやoptionalになっているプロパティがあるので適宜変更
- SKWNavigator.initializeにoptional propertyを渡せなくなった
-
SKWVideo.addSrcにoptional propertyを渡せなくなった
- そもそもdeprecatedになっているので変更が必要
// 変更内容 self.remoteVideoView.addSrc(_stream, track: 0) _stream.addVideoRenderer(self.remoteVideoView, track: 0)
SKWConnectOptionの reliable もdeprecated、削除
-
SKWPeerErrorの type もdeprecated、これはエラー判定が困る
- かわりにtypeStringというのが帰ってくるが、これのエラー内容がわからないので、こちらで定義が必要
あと addVideoRenderer に変更した部分の影響で、まだ調べているんですが、うちの昨日の一部でstreamを張っているViewを一回剥がして貼り直すみたいなことをしている部分があるんですが。
そこで
self.pipRemoteViedeo.addSrc(stream, track: 0)
self.movieVC.remoteVideoView.removeSrc(stream, track: 0)
これで動いたのを
stream.addVideoRenderer(self.pipRemoteViedeo, track: 0)
stream.removeVideoRenderer(self.movieVC.remoteVideoView, track: 0)
こうしたら動かなかったので、これの順番を逆にしました。
3. テスト
よしなに
*4. 将来的にEnterprise Editionに移行する場合
APIKeyはクライアントに組み込まずに、API作るかFirebase Remote Configなどを使ってノーリリース アップデートできるようにしておきましょう。
所感
大きいリリースの割にSDKの変更点が少なくとてもありがたいです。
エラー内容の判定がSDKの外側にロジックがいくとこだけ、「ウムー、OSSにしてくれ」って気持ちになりました。
エラーのレスポンスそのまま表示にしているようだし、Androidも同じなので、バックエンドの問題にひきづられたのかな〜と思いました。
とはいえ移行はなる早で済ませましょ〜。