全力で SDK にリソースを投入する

SDK 開発の難しさに頭を抱えていたが、この度結論が出たのでまとめることにした。

結論

製品と同様に全力で SDK にリソースを投入する。

雑記

ここで言う SDK というのは WebRTC を利用した自社製品である WebRTC SFU の SDK に限定していることに注意してほしい。WebRTC の SDK つまりは libwebrtc と呼ばれるライブラリを利用する前提になる。

そもそも WebRTC はとても複雑だ。自社製品は全てのスタックを自前で作っている事もあり、把握するのは難しくない。

ただクライアントサイドはそうはいかない。libwebrtc は魔境でしか無い。そもそもリリースされたのに動かない事もある。また開発の進み具合は半端ない。スーパーハカー達がガンガンコミットしてくる。

というライブラリを使ってクライアント側の SDK を開発するコストはとてもとても高い。ただメンテナンスや追従されていない WebRTC 向けの SDK に価値を見出してくれる顧客はいない。

そのため自社では自社製品と同様に SDK にも全力出していくことにした。顧客が使いやすい良い SDK を開発し、維持していく。

iOS や Android SDK を作る場合は libwebrtc の変更点を追いかける必要がある。これは自然と Chrome 側の見えない変更も知ることができる。

これは自社で WebRTC SFU を開発している身としてはとても良いノウハウとなる。libwebrtc の変更に SFU 側も追従しやすくなるというわけだ。

自社では iOS (Swift)と Android (Kotlin) の SDK を提供してきたが、今後は React Native と Flutter 向けの WebRTC ライブラリを提供していこうと考えている。

React Native の WebRTC ライブラリは OSS であるのだが、追従が現実的ではない事とメンテナンスするには作りが自社の方針にあっていないため、 API 的な互換性を保持したまま、1から作り直すことにした。もちろん OSS で Apache License 2.0 にて公開予定だ。

Flutter は正直流行るかどうかわからないが、新しいチャレンジは SDK にも必要だろうということで、こちらもチャレンジしてみることにした。こちらも同様に OSS にて公開予定だ。

自社では iOS や Android の SDK 、今後公開予定の React Native や Flutter のライブラリを有償で改善してくれる人を募集している。

全てのライブラリは OSS にて公開されているので、それをみて改善できそうだと思ったら、 Twitter で voluntas まで気軽に DM を送ってほしい。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store